Android的高度wrap_content与固定比例

时间:2018-08-16 11:23:52

标签: android listview height android-linearlayout android-wrap-content

我的XML文件的LinearLayout包含两个ListViewandroid:height="wrap_content"。但是,当ListView中的一个内容过多时,它将推入另一个ListView并占用其空间。我该怎么做才能使其停止在某个高度停止运动?我尝试添加layout-weightmaxHeight,但这无济于事。

3 个答案:

答案 0 :(得分:0)

如果您希望两个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

答案 1 :(得分:0)

尝试一下:

               <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>

答案 2 :(得分:0)

我通过编程来解决。似乎XML对动态高度没有太多控制。我向onLayoutChangedListener都添加了ListView,以检测高度变化并在侦听器中添加高度控制逻辑。