将按钮对齐到屏幕LinearLayout的底部

时间:2014-01-14 18:44:06

标签: java android android-linearlayout

我有这个布局:

    <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:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="66dp"
            android:layout_height="64dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:src="@drawable/office_girl" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/greetingTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Hi Boss,"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dailyStatusTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="What to say if someone call?" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="90dp"
        android:layout_marginTop="10dp"
        android:orientation="horizontal" >
<!--         android:layout_gravity="center" -->

        <EditText
            android:id="@+id/suto_sms_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="3dp"
            android:hint="Text"
            android:inputType="textMultiLine"
            android:lines="3" />

    </LinearLayout>

   <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:orientation="horizontal" >

        <TextView
                android:id="@+id/text_phone_status"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Phone Status"
                android:layout_marginTop="3dp"
                android:layout_marginLeft="5dp"
                android:textSize="20sp" />
        <Spinner
            android:id="@+id/spinner_phone_status"
            android:layout_width="120dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"/>

    </LinearLayout>

   <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:orientation="horizontal" >

        <TextView
                android:id="@+id/text_busy_until"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="until"
                android:layout_marginTop="3dp"
                android:layout_marginLeft="5dp"
                android:textSize="20sp" />
        <Button
            android:enabled="true"
            android:id="@+id/button_set_date_and_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:layout_marginLeft="30dp"
            android:text="@string/set_time" />
        <TextView
                android:enabled="true"
                android:id="@+id/text_date_and_time"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="3dp"
                android:layout_marginLeft="40dp"
                android:textSize="12sp" 
                android:textStyle="bold"/>


    </LinearLayout>

   <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_gravity="center_horizontal"
        android:orientation="horizontal" >
        <Button
            android:id="@+id/button_confirm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:text="@string/button_confirm" />
        <Button
            android:id="@+id/button_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:layout_marginLeft="3dp"
            android:text="@string/button_cancel" />



    </LinearLayout>

</LinearLayout>

这是输出的一部分:

enter image description here

我的问题是如何将我的确认和取消按钮(xml的最后一部分)与屏幕的对接部分对齐?

我看到了如何使用相对布局完成的示例,但我的xml非常大,我不想将其更改为相对布局,因为这意味着很多工作。

感谢。

4 个答案:

答案 0 :(得分:0)

使用按钮上的android:layout_gravity="bottom"属性及其包含的LinearLayout

答案 1 :(得分:0)

添加

android:layout_weight="1" 

在倒数第二个LinearLayout和

android:layout_weight="0"

在最后一个LinearLayout中。希望这对你有用。

答案 2 :(得分:0)

试试此代码

<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:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.9"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="66dp"
            android:layout_height="64dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/greetingTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Hi Boss,"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dailyStatusTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="What to say if someone call?" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="90dp"
        android:layout_marginTop="10dp"
        android:orientation="horizontal" >

        <!-- android:layout_gravity="center" -->

        <EditText
            android:id="@+id/suto_sms_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="3dp"
            android:hint="Text"
            android:inputType="textMultiLine"
            android:lines="3" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/text_phone_status"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="3dp"
            android:text="Phone Status"
            android:textSize="20sp" />

        <Spinner
            android:id="@+id/spinner_phone_status"
            android:layout_width="120dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/text_busy_until"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="3dp"
            android:text="until"
            android:textSize="20sp" />

        <Button
            android:id="@+id/button_set_date_and_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:layout_marginTop="3dp"
            android:enabled="true"
            android:text="set_time" />

        <TextView
            android:id="@+id/text_date_and_time"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="40dp"
            android:layout_marginTop="3dp"
            android:enabled="true"
            android:textSize="12sp"
            android:textStyle="bold" />
    </LinearLayout>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.025"
    android:baselineAligned="true"
    android:gravity="center"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button_confirm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="confirm" />

    <Button
        android:id="@+id/button_cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="cancel" />
</LinearLayout>

在这里你使用了很多LinearLayouts,但我个人建议你试试relativelayout

答案 3 :(得分:0)

使用RelativeLayout实际上非常容易,因为你可以非常聪明。例如,将它包装在所有内容中,以便当前的父线性布局将成为第一个子项,最后将带有按钮的线性布局放在当前父项外部,并使用参数alignParentBottom

请看这个:

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

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

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="66dp"
            android:layout_height="64dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:src="@drawable/plus" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/greetingTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Hi Boss,"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/dailyStatusTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="What to say if someone call?" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="90dp"
        android:layout_marginTop="10dp"
        android:orientation="horizontal" >
        <!--         android:layout_gravity="center" -->

        <EditText
            android:id="@+id/suto_sms_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="3dp"
            android:hint="Text"
            android:inputType="textMultiLine"
            android:lines="3" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/text_phone_status"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Phone Status"
            android:layout_marginTop="3dp"
            android:layout_marginLeft="5dp"
            android:textSize="20sp" />
        <Spinner
            android:id="@+id/spinner_phone_status"
            android:layout_width="120dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/text_busy_until"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="until"
            android:layout_marginTop="3dp"
            android:layout_marginLeft="5dp"
            android:textSize="20sp" />
        <Button
            android:enabled="true"
            android:id="@+id/button_set_date_and_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:layout_marginLeft="30dp"
            android:text="set_time" />
        <TextView
            android:enabled="true"
            android:id="@+id/text_date_and_time"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:layout_marginLeft="40dp"
            android:textSize="12sp"
            android:textStyle="bold"/>


    </LinearLayout>


    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_gravity="center_horizontal"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal" >
        <Button
            android:id="@+id/button_confirm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:text="confirm" />
        <Button
            android:id="@+id/button_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:layout_marginLeft="3dp"
            android:text="cancel" />

    </LinearLayout>

</RelativeLayout>