如何在ScrollView中将LinearLayout高度设置为匹配父级

时间:2018-05-29 06:52:06

标签: android android-layout scrollview

下面我修改了我的布局文件。我可以解决这个问题。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/ticket_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:isScrollContainer="true">

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

</ScrollView>

3 个答案:

答案 0 :(得分:2)

你的LinearLayout应该有android:layout_height="wrap_content"

原因是如果scrollview的子节点与scrollview本身的大小相同(都是match_parent的高度),则意味着没有任何内容可以滚动,因为它们的大小相同,而scrollview将会只有屏幕一样高。

如果LinearLayout的高度为wrap_content,则高度与屏幕高度无关,而scrollview将能够滚动它。

请记住,一个滚动视图只能有一个直接的孩子,而该孩子需要android:layout_height="wrap_content"

答案 1 :(得分:2)

尝试一下,我认为这可能会对您有所帮助。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/ticket_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:isScrollContainer="true">

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

    </ScrollView>

答案 2 :(得分:0)

在ScrollView中定义具有匹配父高度的LinearLayout是没有意义的。您必须设置LinearLayout高度以包装内容才能滚动它。