Android: How do I add a footer to a fullscreen scrollview?

你说的曾经没有我的故事 提交于 2019-12-02 00:45:17

问题


I want the footer to be anchored at the bottom of the screen if and only if it can be anchored there without overlapping any other views.

The problem is that I don't know how many views are going to be added to the header or the footer.

If putting the footer at the bottom of the window would make it overlap, I want to put the footer at the bottom of the scrollview. (Maybe by adding it to the RelativeLayout with the rule that it needs to be below the top component?)

Here is a pic of what I'm trying to get:

desired result

Where:

1)The RelativeLayout contains both the TableLayout at the top, and the LinearLayout at the bottom.

2)The TableLayout expands downwards as TableRows get added to it.

3)The LinearLayout expands up from the bottom as views get added to it.

~~~

I'd like for the scrollview to grow in size only enough to fit the components without overlapping.

Thanks in advance for such awesome community support


回答1:


I think you can solve it in linear layout. You set three blocks in linear layout: header, body, footer. Set body to fill_parent and layout_weight=1, this way body will expand to fill what left after header and footer taken its part from parent. Whole structure place into ScrollView.

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TableRow><TextView android:text="Text1"/></TableRow>
            <TableRow><TextView android:text="Text2"/></TableRow>
        </TableLayout>
        <RelativeLayout 
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TextView 
                android:text="@string/lorem_ipsum"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </RelativeLayout>
        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:text="Text3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
            <TextView
                android:text="Text4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </LinearLayout>
    </LinearLayout>
</ScrollView>

I tested this in Emulator of Android 2.1 and it looks it works.



来源:https://stackoverflow.com/questions/7134085/android-how-do-i-add-a-footer-to-a-fullscreen-scrollview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!