将视图的最小高度设置为其父视图的高度

3

在ScrollView中,我有一个LinearLayout。LinearLayout可以尽可能高,但是我希望它的最小高度至少与其父级(ScrollView)一样高。

<ScrollView
    ...>
    <LinearLayout
        ...
        android:layout_marginTop="@dimen/some_margin"
        android:minHeight="match_parent">

这不起作用。它不接受"match_parent"来设置minHeight。那么我该怎么做?


我会使用Java中的 setMinimumHeight(int) - OneCricketeer
这个有帮助吗?https://dev59.com/D3E85IYBdhLWcg3wzm9p#2606641 - OneCricketeer
2个回答

8
您可以在xml文件中使用ScrollView的android:fillViewport="true"属性,如下所示:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <!--Rest of the children-->
    </LinearLayout>

</ScrollView>

这会使ScrollView变高,但不会使内部元素(LinearLayout)变高。 - Machado

0

所以你只是想避免在LinearLayout中的内容没有填满ScrollView允许的空间时浪费空间吗?那么将LinearLayout的高度设置为多少呢:

android:layout_height="match_parent"

你也可以在ScrollView上设置相同的属性,以便它也适应其父级,但这并非必须。


@Derek,这应该可以工作。你确定线性布局中的元素占用了自由空间吗?即权重设置。 - Yaroslav
你的意思是什么?能给个示例代码吗? - Derek 朕會功夫
Derek - 如果您包含完整的布局XML和屏幕截图,并解释其中的问题,我们应该能够提供帮助。 - Riaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接