让子视图决定android中父视图的大小
我有一个自定义视图/布局,需要根据子对象的内容调整大小。布局如下所示:让子视图决定android中父视图的大小,android,android-layout,Android,Android Layout,我有一个自定义视图/布局,需要根据子对象的内容调整大小。布局如下所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="100dp" android:layout_height="64dp" android:orientatio
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="100dp"
android:layout_height="64dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/rectangle"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@drawable/rectangle"
android:orientation="horizontal"
android:padding="5dp">
<ImageView
android:id="@+id/iconImageView"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center_vertical|left"
android:contentDescription="Icon"
android:src="@drawable/iconplaceholder"
android:scaleType="fitCenter"/>
<TextView
android:id="@+id/labelTextView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:textColor="@color/white"
android:gravity="center|left"
android:textSize="16dp"
android:text="Hello"/>
</LinearLayout>
<View
android:id="@+id/triangle"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/triangle"
android:rotation="180"/>
</LinearLayout>
我想做的是:
- 列表项
- 允许视图具有最大宽度
- 确保文本视图的
的整个文本在视图中可见,并允许其在需要时变高,但不能超过最大宽度@+id/labelTextView
- 如果文本很短,则视图应尽可能宽
- 从代码中设置
的大小,并确保相应地调整父视图的大小@+id/iconImageView
我想我需要覆盖我的观点,但是如果这是正确的方法,请给出建议。此外,在给定一组约束条件(如最大宽度)的情况下,如何测量文本视图的大小?我认为您可以将父级的布局高度设置为
环绕内容。通过这种方式,它将视图设置为需要的大小,具体取决于视图中子对象的大小 为什么要使用线性布局。为此,最好使用相对布局。它们会根据可用空间自动调整,如果您以正确的方式书写,那么正确的方式是什么?当我不能使用android:layout_weight=“1”时,我不知道该怎么做。谢谢!太完美了!如果你知道怎么做,那就太容易了。:)真的!没问题。