在页面底部和列表底部放置一个按钮

时间:2013-07-15 18:29:21

标签: android android-layout

如果列表比视图大,我试图将一个按钮固定到视图的底部以及列表的底部。

所以当列表小于屏幕时,我希望它们看起来像这样:

enter image description here

并且在更大的时候喜欢这样:

enter image description here enter image description here

我知道我应该使用RelativeLayout将按钮放在页面底部android:layout_alignParentBottom="true"但是当我还添加android:layout_below="@id/table_wrapper"时,如果内容较小,我的按钮的高度会变得混乱而不是观点:

enter image description here

有没有人知道如何才能做到这一点?

我的代码的简化版本:

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

        <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">
            <LinearLayout
                    android:id="@+id/table_wrapper"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">
                <LinearLayout
                        android:id="@+id/vertical_header_table"
                        android:layout_width="85dp"
                        android:layout_height="wrap_content"
                        android:orientation="vertical">
                    <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:text="Day"
                            android:gravity="center"/>
                    <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:text="Day"
                            android:gravity="center"/>
                    <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:text="Day"
                            android:gravity="center"/>
                    <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:text="Day"
                            android:gravity="center"/>
                    <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:text="Day"
                            android:gravity="center"/>
                    <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:text="Day"
                            android:gravity="center"/>
                    <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:text="Day"
                            android:gravity="center"/>
                </LinearLayout>

                <LinearLayout
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical">
                    <View
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:background="#444444"></View>
                    <View
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:background="#444444"></View>
                    <View
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:background="#444444"></View>
                    <View
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:background="#444444"></View>
                    <View
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:background="#444444"></View>
                    <View
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:background="#444444"></View>
                    <View
                            android:layout_width="wrap_content"
                            android:layout_height="40dp"
                            android:background="#444444"></View>
                </LinearLayout>
            </LinearLayout>
            <Button
                    android:text="load more"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/table_wrapper"
                    android:layout_alignParentBottom="true"
                    android:gravity="center"
                    android:padding="20dp"
                    />
        </RelativeLayout>
    </ScrollView>
</LinearLayout>

注1:

删除android:layout_below="@id/table_wrapper"会导致按钮始终位于屏幕底部,即使列表大于屏幕也是如此。

注2

添加layout_weight不起作用,因为我的视图大小是动态的。

2 个答案:

答案 0 :(得分:1)

然后使用以下内容,肯定会帮助您,我已经过测试了!

      <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom"
        android:layout_alignParentBottom="true"
        android:layout_below="@id/table_wrapper" >

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="20dp"
            android:text="load more" />
    </LinearLayout>

答案 1 :(得分:0)

我不知道为什么我的帖子被George Stocker删除了

检查maclir应该适合你:

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

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true" >

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

            <LinearLayout
                android:id="@+id/table_wrapper"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:orientation="horizontal" >

                <LinearLayout
                    android:id="@+id/vertical_header_table"
                    android:layout_width="85dp"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:gravity="center"
                        android:text="Day" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:gravity="center"
                        android:text="Day" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:gravity="center"
                        android:text="Day" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:gravity="center"
                        android:text="Day" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:gravity="center"
                        android:text="Day" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:gravity="center"
                        android:text="Day" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:gravity="center"
                        android:text="Day" />
                </LinearLayout>

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

                    <View
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:background="#444444" >
                    </View>

                    <View
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:background="#444444" >
                    </View>

                    <View
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:background="#444444" >
                    </View>

                    <View
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:background="#444444" >
                    </View>

                    <View
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:background="#444444" >
                    </View>

                    <View
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:background="#444444" >
                    </View>

                    <View
                        android:layout_width="wrap_content"
                        android:layout_height="40dp"
                        android:background="#444444" >
                    </View>
                </LinearLayout>
            </LinearLayout>

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

                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:gravity="center"
                    android:padding="20dp"
                    android:text="load more" />
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

</LinearLayout>