如何使用线性布局将按钮设置到屏幕底部

时间:2016-05-17 20:58:13

标签: android android-layout

我刚开始使用Android并拥有以下代码。我想在屏幕底部显示三个按钮而不更改为相对布局。我尝试设置内部线性布局的layout_weightgravity,但这会将按钮放在手机三个菜单按钮后面的底部。如何在菜单按钮上方显示它们?任何帮助将不胜感激。

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

    <EditText
        android:id="@+id/search_box"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/search_box" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:paddingTop="80dp"
        android:text="@string/welcome"
        android:textSize="24sp" />

    <LinearLayout
        style="?android:attr/buttonBarStyle"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="bottom"
        android:orientation="horizontal">

        <Button
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/buttonB1" />

        <Button
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/buttonB2" />

        <Button
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/buttonB3" />
    </LinearLayout>
</LinearLayout>

左图显示我想要移动到底部的按钮。右图显示我尝试这样做但按钮最终部分位于系统菜单按钮后面。

Buttons I want to move to the bottom Buttons behind the menu buttons of phone

3 个答案:

答案 0 :(得分:0)

尝试在每个按钮的底部添加边距。将其添加到每个按钮布局:android:layout_marginBottom =&#34; 20dp&#34;

如果这不起作用,请为线性布局本身添加底部边距。

答案 1 :(得分:0)

设置TextView height = 0,weight = 1。 而LinearLayout height =换行内容。 一切都会安好的。试试吧!

答案 2 :(得分:0)

试试吧

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

    <EditText
        android:id="@+id/search_box"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/search_box" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#F00"
        android:gravity="center_horizontal"
        android:paddingTop="80dp"
        android:text="@string/welcome"
        android:textSize="24sp" />

    <LinearLayout
        style="?android:attr/buttonBarStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FF0"
        android:orientation="horizontal">

        <Button
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/buttonB1" />

        <Button
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/buttonB2" />

        <Button
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/buttonB3" />
    </LinearLayout>
</LinearLayout>