将按钮放在图层的底部

Put button in the bottom of the layer

我正在尝试将这两个按钮放在图层的底部。但是,当我将它们的引力设为 "bottom" 时,什么也没有发生。请帮我。 我也尝试将我的第二个 linearLayout "bottom" 的重力设置为 wrap_content 作为高度,但仍然无法正常工作。

[![<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.emmanuilvaresis.oldiefinder.AppSettings"
    android:orientation="vertical"
    android:background="@drawable/background_img">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="italic"
        android:textSize="22sp"
        android:text="@string/keyword"
        android:id="@+id/lblKeyword"
        android:textColor="#ffffff" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtKeyword"
        android:textSize="20sp"
        android:textColor="#cacaca" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="italic"
        android:textSize="22sp"
        android:text="@string/number"
        android:id="@+id/lblNumber"
        android:textColor="#ffffff" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtNumber"
        android:textSize="20sp"
        android:textColor="#cacaca" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="italic"
        android:textSize="22sp"
        android:text="@string/address"
        android:id="@+id/lblAddress"
        android:textColor="#ffffff" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtAddress"
        android:textSize="20sp"
        android:textColor="#cacaca"
        android:hint="@string/addresshint"
        android:textColorHint="#cacaca" />

    <LinearLayout
        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:id="@+id/btnOK"
        android:text="@string/btnOK"
            android:layout_gravity="bottom" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btnCancel"
            android:text="@string/btncancel"
            android:layout_gravity="bottom|center" />
    </LinearLayout>

</LinearLayout>][1]][1]

layout_gravity 不适用于 LinearLayout。您应该将 FrameLayout 用作具有 layout_gravity 属性的视图的父视图。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_img"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.emmanuilvaresis.oldiefinder.AppSettings">

<TextView
    android:id="@+id/lblKeyword"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/keyword"
    android:textColor="#ffffff"
    android:textSize="22sp"
    android:textStyle="italic" />

<EditText
    android:id="@+id/txtKeyword"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="#cacaca"
    android:textSize="20sp" />

<TextView
    android:id="@+id/lblNumber"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/number"
    android:textColor="#ffffff"
    android:textSize="22sp"
    android:textStyle="italic" />

<EditText
    android:id="@+id/txtNumber"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="#cacaca"
    android:textSize="20sp" />

<TextView
    android:id="@+id/lblAddress"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/address"
    android:textColor="#ffffff"
    android:textSize="22sp"
    android:textStyle="italic" />

<EditText
    android:id="@+id/txtAddress"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/addresshint"
    android:textColor="#cacaca"
    android:textColorHint="#cacaca"
    android:textSize="20sp" />

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center"
        android:orientation="vertical">

        <Button
            android:id="@+id/btnOK"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/btnOK" />

        <Button
            android:id="@+id/btnCancel"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/btncancel" />
    </LinearLayout>
</FrameLayout>
</LinearLayout>

您想在屏幕底部放置一个带有两个按钮的水平线性布局。 您可以简单地将剩余内容包装成垂直线性布局并将其 layout_weight 设置为 1.

示例代码:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            //REPLACE BELOW CODE WITH YOUR REMAINING CODE WRAPPED INSIDE A LINEAR LAYOUT, APART FROM THOSE BUTTONS.
            <include
                layout="@layout/YOUR_REMAINING_CONTENT"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1.0" />
            //YOUR LINEARLAYOUT WITH BUTTONS WHICH NEEDS TO STAY AT BOTTOM.
            <include layout="@layout/YOUR_BOTTOM_CONTENT"/> 
</LinearLayout>