无法正确对齐底部布局

时间:2017-04-04 07:45:57

标签: android android-linearlayout relativelayout

我是android新手。我创建的布局与链接http://prntscr.com/es7oko相同。现在我的问题是我使用相对布局创建了这个布局,并在线性布局中创建了这个最后的“sign / signUp”布局,但是当我将align_parent_bottom属性设置为线性布局时,相对布局高度变为全屏但我指定了wrap_content高度。帮我设置相同的布局。

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


<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:titleTextColor="@color/colorPrimary"
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />


<RelativeLayout
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@mipmap/bg_sign_in">

    <TextView
        android:id="@+id/welcom"
        style="@android:style/TextAppearance.Large"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="@dimen/activity_32_margin"
        android:text="@string/Welcome"
        android:textColor="@color/colorWhite"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/smallText"
        style="@android:style/TextAppearance.Small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/welcom"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="@dimen/activity_8_margin"
        android:text="@string/quote"
        android:textColor="@color/colorWhite" />

    <TextView
        android:id="@+id/smallTextHalf"
        style="@android:style/TextAppearance.Small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/smallText"
        android:layout_centerHorizontal="true"
        android:text="@string/halfQuote"
        android:textColor="@color/colorWhite" />


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="bottom"
        android:orientation="horizontal"
        android:weightSum="1"

        >


        <TextView
            android:id="@+id/txtSignIn"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.5"
            android:text="@string/SignIn"
            android:textAlignment="center"
            android:textColor="@color/colorWhite" />

        <TextView
            android:id="@+id/txtSignUp"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.5"
            android:text="@string/SignUp"
            android:textAlignment="center"
            android:textColor="@color/colorWhite" />


    </LinearLayout>


</RelativeLayout>

我使用上面的代码得到了这个:http://prntscr.com/es7qcq

3 个答案:

答案 0 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/layout_background"
    android:orientation="vertical"
    android:padding="5dp">

<LinearLayout
            android:id="@+id/activity_home_ll"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom" />
       </LinearLayout>
    </LinearLayout>

答案 1 :(得分:0)

尝试底部的这种布局:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="bottom"
        android:orientation="horizontal"
        android:padding="15dp"
        android:weightSum="1">


        <Button
            android:id="@+id/txtSignIn"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.5"
            android:background="@null"
            android:text="Sign in"
            android:textAlignment="center"
            android:textColor="@color/color_black"
            android:textSize="18sp" />

        <View
            android:layout_width="1dp"
            android:layout_height="20dp"
            android:background="@color/color_white"></View>

        <Button
            android:id="@+id/txtSignUp"
            style="?android:attr/borderlessButtonStyle"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.5"
            android:background="@null"
            android:text="Sign Up"
            android:textAlignment="center"
            android:textColor="@color/color_black"
            android:textSize="18sp" />


    </LinearLayout>

输出:

enter image description here

答案 2 :(得分:0)

如果您不想在屏幕底部对齐signInsignUp按钮,则需要设置fixed height banner RelativeLayout

试试这个:

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


    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:local="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:titleTextColor="@color/colorPrimary"
        local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

    <RelativeLayout
        android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:background="@drawable/bg_sign_in">

        <TextView
            android:id="@+id/welcom"
            style="@android:style/TextAppearance.Large"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="@dimen/activity_32_margin"
            android:text="@string/Welcome"
            android:textColor="@color/colorWhite"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/smallText"
            style="@android:style/TextAppearance.Small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/welcom"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="@dimen/activity_8_margin"
            android:text="@string/quote"
            android:textColor="@color/colorWhite" />

        <TextView
            android:id="@+id/smallTextHalf"
            style="@android:style/TextAppearance.Small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/smallText"
            android:layout_centerHorizontal="true"
            android:text="@string/halfQuote"
            android:textColor="@color/colorWhite" />


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal">


            <TextView
                android:id="@+id/txtSignIn"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="0.5"
                android:text="@string/SignIn"
                android:textAlignment="center"
                android:textColor="@color/colorWhite"
                android:gravity="center_vertical"/>

            <TextView
                android:id="@+id/txtSignUp"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="0.5"
                android:text="@string/SignUp"
                android:textAlignment="center"
                android:textColor="@color/colorWhite"
                android:gravity="center_vertical"/>

        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

<强>输出:

enter image description here

如果您想在屏幕底部对齐signInsignUp按钮,则需要将height设置为wrap_content对于横幅RelativeLayout,需要设置LinearLayout属性layout_alignParentBottomtrue

试试这个:

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

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:local="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:titleTextColor="@color/colorPrimary"
        local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

    <RelativeLayout
        android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/bg_sign_in">

        <TextView
            android:id="@+id/welcom"
            style="@android:style/TextAppearance.Large"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="@dimen/activity_32_margin"
            android:text="@string/Welcome"
            android:textColor="@color/colorWhite"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/smallText"
            style="@android:style/TextAppearance.Small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/welcom"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="@dimen/activity_8_margin"
            android:text="@string/quote"
            android:textColor="@color/colorWhite" />

        <TextView
            android:id="@+id/smallTextHalf"
            style="@android:style/TextAppearance.Small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/smallText"
            android:layout_centerHorizontal="true"
            android:text="@string/halfQuote"
            android:textColor="@color/colorWhite" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/txtSignIn"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="0.5"
                android:text="@string/SignIn"
                android:textAlignment="center"
                android:textColor="@color/colorWhite"
                android:gravity="center_vertical"/>

            <TextView
                android:id="@+id/txtSignUp"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="0.5"
                android:text="@string/SignUp"
                android:textAlignment="center"
                android:textColor="@color/colorWhite"
                android:gravity="center_vertical"/>

        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

<强>输出:

enter image description here

希望这会有所帮助〜