1

我有一个这个活动

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

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="@dimen/padding_large"
    android:background="@color/dark_grey">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/filter_activities"
        android:background="@drawable/filter_btn"
        android:textColor="@color/white"
        android:textAlignment="gravity"
        android:id="@+id/show_filter_btn"
        android:padding="@dimen/padding_medium"
        android:gravity="center"
        android:layout_gravity="center"
        android:drawableRight="@drawable/ic_settings"/>

</LinearLayout>
<FrameLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/top" />

</LinearLayout>

并且 onCreate 我将此 Fragment 加载到 FrameLayout

<?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">

<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/types_spinner" />

<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/classes_spinner" />

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/venues_list" />

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/search" />
</LinearLayout>

当我运行这个应用程序时页面是这样显示的

在此处输入图像描述

如您所见,按钮位于屏幕底部。我怎么能改变布局,使按钮总是在底部,所以如果需要的话 ListView 可以滚动。

4

1 回答 1

1

您应该将 LinearLayout 替换为 RelativeLayout。使用 android:layout_alignParentBottom="true" 设置您的按钮,然后在 linearLayout 中放置您的视图的其余部分。这个 linearLayout 应该是 layout_alignParentTop 和 layoutAbove 你的第一个按钮:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/search"
    android:id="@+id/my_button"
    android:layout_alignParentBottom="true" />
<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_above="@id/my_button">
    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/types_spinner" />

    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/classes_spinner" />

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/venues_list" />
</LinearLayout>

</RelativeLayout>
于 2013-10-01T16:14:12.127 回答