使 LinearLayout 将其高度调整为具有 "wrap_content" 高度的 TextView

Make LinearLayout adjust it's height to a TextView with "wrap_content" height

我有一个 LinearLayout,其中包含一个具有固定高度的 ImageView,以及一个具有 wrap_content 高度的 TextView。如果文本不适合一行,我希望 LinearLayout 增长以适应整个 TextView

我的代码:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:orientation="vertical">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_margin="5dp"
        android:scaleType="fitCenter"
        android:src="@drawable/question_mark"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:singleLine="false"
        android:text="Some long text that doesnt fit on one line"/>
</LinearLayout>

上例中的 LinearLayout 没有调整大小,所以我只看到 "Some long text" 然后 TextView 的其余部分被隐藏了。

有什么方法可以让 LinearLayout 根据 TextView 调整大小?

我知道我可以使用 RelativeLayout 和其他类型的布局来实现此目的,但我想问的是使用 LinearLayout 的解决方案。

试试这个:

<LinearLayout android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_margin="5dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_launcher_background"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Some long text that doesnt fit on one line"/>

</LinearLayout>