如何防止ScrollView隐藏页脚?

时间:2012-01-23 11:50:42

标签: android android-layout scrollview

屏幕中间有一个页眉和页脚,而屏幕中心(内容区域)被ScrollView占用。当我启动应用程序时,会显示页脚。但是,当我点击元素“A”时,它会在屏幕上显示更多元素,推动下面的其他元素。 ScrollView确实使中心部分可滚动,但它也隐藏了页脚(屏幕底部的灰色LinearLayout)。

如何在页面底部留下页脚?我希望Content Area只滚动。页眉和页脚XML不在ScrollView元素之内。我尝试使用RelativeLayout作为页脚而不是LinearLayout,但没有任何成功。

这是单击元素“A”之前和之后的外观。

Before click

After click

如果需要,我可以提供代码,XML和Java,但它几乎是代码。

3 个答案:

答案 0 :(得分:9)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:fillViewport="true">

        <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />

    </LinearLayout>

</LinearLayout>

使用权重进行布局

答案 1 :(得分:1)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<Button
    android:id="@+id/header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:text="Header view" />

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/content"
    android:layout_below="@id/header" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

    //////////////



    </LinearLayout>
</ScrollView>

<Button
    android:id="@+id/footer"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="Footer View" />

答案 2 :(得分:0)

Scrollviews direct child不得具有wrap_content的height属性。我觉得你宣称包装不是吗?视图高度必须具有不可调整大小的高度