LinearLayout子项 - 所有视图应具有相同的高度,并至少包装其内容

时间:2018-01-05 21:31:33

标签: android android-linearlayout

这是我的(简化)代码示例:

<LinearLayout
    android:id="@+id/llCustomValueContainer"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="horizontal">

    <LinearLayout
        android:id="@+id/llTitle"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">

        <!-- some content of undefined height -->

    </LinearLayout>

    <!-- following content is of undefined height as well -->
    <TextView
        android:id="@+id/tvValueTop"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="center_vertical"/>

</LinearLayout>

我想要什么

  • llCustomValueContainer应该从它的最高孩子(llTitletvValueTop
  • 中获得它的高度
  • llTitletvValueTop应该具有相同的高度(因为我希望选择器和触摸使用全高)并且至少应该包装其内容

问题

只要llTitle的高度高于tvValueTop的高度,一切都有效。我可以以某种方式更改布局,以便我llTitletvValueTop具有相同的高度,并至少包装其内容(较小的视图应拉伸到与较大的视图相同的高度)?我不希望它们看起来像是高度相同(例如,将较小的一个垂直居中),但我真的希望它们具有相同的高度,因为可以点击两个视图。

1 个答案:

答案 0 :(得分:1)

对于外wrap_content使用LinearLayout的高度,并为两个孩子使用match_parent的高度。

我知道这看起来有点奇怪,但只要外部LinearLayout的孩子的具有确定的大小(固定或wrap_content),由此产生的行为将是每个孩子都是最高孩子的身高。

enter image description here

enter image description here