Android 身高 wrap_content 固定比例
Android height wrap_content with fix ratio
我的 XML
文件有一个 LinearLayout
包含两个 ListView
和 android:height="wrap_content"
。但是,当其中一个 ListView
的内容过多时,它会推入另一个 ListView
并吃掉它的 space。我该怎么做才能让它在一定高度停止推动?我试过添加 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
试试这个:
<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>
我通过编程方式解决了这个问题。似乎 XML
对动态高度没有太多控制。我将 onLayoutChangedListener
添加到 ListView
以检测高度变化并在侦听器中添加高度控制逻辑。
我的 XML
文件有一个 LinearLayout
包含两个 ListView
和 android:height="wrap_content"
。但是,当其中一个 ListView
的内容过多时,它会推入另一个 ListView
并吃掉它的 space。我该怎么做才能让它在一定高度停止推动?我试过添加 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
试试这个:
<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>
我通过编程方式解决了这个问题。似乎 XML
对动态高度没有太多控制。我将 onLayoutChangedListener
添加到 ListView
以检测高度变化并在侦听器中添加高度控制逻辑。