2

您如何使按钮和其他内容固定在屏幕底部,而不管其他内容如何?

我有这样的布局:

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

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="center_horizontal"
            android:layout_weight="1"
            android:gravity="center_horizontal" >

            <TextView ... />

            ...

            <TextView ... />

        </LinearLayout>

        <Button
            android:id="@+id/ButtonMain"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:text="@string/button_text"
            android:textSize="30px"
            android:textStyle="bold"
            android:width="200px" />

    </LinearLayout>

</ScrollView>

我希望 ButtonMain 的底部始终位于屏幕底部。但是,按钮呈现在线性布局中内容的正下方,而不是屏幕底部。我已经尝试过layout_gravity="center_horizontal|bottom",以及将按钮放在其自己的具有相似重力的 LinearLayout 中,但这不起作用。

我怎样才能完成这个布局?

4

4 回答 4

2

您可以使用 RelativeLayout 而不是 LinearLayout。通过添加以下标签,它将被疏远到屏幕的按钮

android:layout_alignParentBottom="true"

如果您希望按钮始终位于底部,则应将 ScrollView 放在 RelativeLayout 内,并将按钮放在底部

见:http: //developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html

于 2012-07-31T19:22:51.613 回答
1

将滚动视图包装在相对布局中,但 xml 文件中的按钮首先将 alignParentBottom 字段设置为 true。然后将scrollView放入并将其设置在Buttons上方。然后滚动视图将填充其余空间并始终位于按钮上方,这些按钮将一直显示而不滚动。

于 2012-07-31T19:22:54.817 回答
1
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroller"
    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:gravity="center_horizontal"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/txt1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Hello"
            android:textSize="25sp" />

        <TextView
            android:id="@+id/txt2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Hello2"
            android:textSize="25sp" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="bottom|center"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/ButtonMain"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:text="click me"
                android:textSize="30px"
                android:textStyle="bold" />
        </LinearLayout>
    </LinearLayout>

</ScrollView>
于 2012-07-31T19:27:18.197 回答
1

根据上面的评论,OP 想要Button他的ScrollView. 但是,XML 只能有一个根元素,因此您必须将ScrollViewand包装Button在某种布局中。

我在下面使用您的初始布局和尺寸演示了这一点:

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

    <ScrollView
        android:id="@+id/ScrollView01"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:fillViewport="true" >

        <!-- You can remove one of these two LinearLayouts, since they just nest each other. Which one you want to remove is up to you. -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:gravity="center_horizontal" >

                <TextView ... />

                ...

                <TextView ... />

            </LinearLayout>

        </LinearLayout>

    </ScrollView>

    <Button
        android:id="@+id/ButtonMain"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:text="@string/button_text"
        android:textSize="30px"
        android:textStyle="bold"
        android:width="200px" />

</LinearLayout>

如果您有任何问题,请告诉我!

于 2012-08-01T00:24:26.337 回答