LinearLayout minHeight 不适用于 weight="1"

Posted

技术标签:

【中文标题】LinearLayout minHeight 不适用于 weight="1"【英文标题】:LinearLayout minHeight not working with weigth="1" 【发布时间】:2012-09-27 15:25:12 【问题描述】:

我整个下午都在尝试让minHeight 属性起作用。

我想要的是 linearMe 布局:

当 ListView 只有几个元素时,从屏幕底部拉伸到 ListView 底部。 例如,我需要能够用图片填充 linearMe 布局。

随着 ListView 变大,我希望 linearMe 布局:

具有固定高度(在屏幕底部时)和允许滚动的 ListView。

我的问题是 linearMe 布局越来越小,因为 ListView 中有更多元素。当 listView 有足够的元素填满屏幕时,linearMe 布局就消失了。在这种情况下,minHeight 似乎没有用。

<LinearLayout
    android:layout_
    android:orientation="vertical"
    android:layout_ >

<ListView
    android:id="@+id/list"
    android:layout_
    android:layout_ />

<LinearLayout
    android:id="@+id/linearMe"
    android:layout_
    android:layout_
    android:layout_weight="1"
    android:background="#FF0000"
    android:minHeight="200dp" />

</LinearLayout>

希望你能帮帮我! :)

【问题讨论】:

你解决过这个问题吗? 我已经解决了同样的问题,请看我的回答:- http://***.com/questions/42832856/minheight-not-working-with-weight-1-in-linearlayout/43199823#43199823 【参考方案1】:

也将android:layout_weight="1" 添加到 ListView。 将它们都更改(列表和线性我)android:layout_height 属性为"match_parent" 删除`minHeight。

这样每个视图将占据屏幕的一半。`

【讨论】:

这不是我想要的……我想利用所有可用空间,例如 ListView 中只有一项。 那么为什么不将 maxHieght 设置为 ListView 呢?无论如何最好通过代码而不是 xml 动态地做这样的事情 你确定 maxHeight 存在吗?我不这么认为。 developer.android.com/reference/android/widget/ListView.html【参考方案2】:

您可能想尝试使用“View”而不是“LinearLayout”来进行间隔布局。 ViewGroup 类有时处理布局略有不同。

【讨论】:

那我该如何添加内容呢? 保持 LinearLayout 作为你的根布局,但是使用 View 作为间隔视图。 (给定上面的示例代码)。 假设我想在linearMe 布局中放一张图片。你的解决方案怎么可能? 不是。鉴于您的示例代码,看起来您只是想在屏幕底部设置背景颜色。 好的,抱歉。我会澄清我的问题。 :)

以上是关于LinearLayout minHeight 不适用于 weight="1"的主要内容,如果未能解决你的问题,请参考以下文章

右对齐水平LinearLayout中的按钮

在 CollapsingToolbarLayout 中设置 minHeight 没有任何效果

Flex中容器问题的动态minHeight

将 minHeight 与 flex 一起使用会产生意外的填充

Android ImageView - 当adjustViewBounds=true时minWidth/minHeight没有效果

ScrollView minHeight 占用所有空间