我的XML
文件有一个包含两个带有android:height="wrap_content"
的ListView
的LinearLayout
。但是,当其中一个ListView
的内容过多时,它会推另一个ListView
并占用其空间。我该怎么做才能让它在一定高度停止推动?我尝试添加layout-weight
或maxHeight
但没有帮助。
如果您希望两个ListViews
平均分配相同的金额,只需将它们放在一个LinearLayout
中即可。
LinearLayout
将具有属性weightSum=2
,而两个ListViews
都将具有,具体取决于LinearLayout orientation property
:
如果vertical
->则两个ListViews
都将具有android:height="0dp"
和layout-weight=1
如果horizontal
->则两个ListViews
都将具有android:width="0dp"
和layout-weight=1
我通过编程方式解决了它。似乎XML
对动态高度没有太多控制。我在两个ListView
中添加了onLayoutChangedListener
来检测高度变化并在侦听器中添加高度控制逻辑。
试试这个:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/green_bg_duplicate"
android:gravity="center"
android:orientation="vertical"
android:weightSum="2">
<RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1" />
<RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1" />
</LinearLayout>