Android线性布局与屏幕底部对齐

时间:2012-05-15 20:00:13

标签: android android-layout

一直在整理我的头发

我试图在屏幕底部有两个线性布局,每个都有几个底部。我想要一个线性布局到右边,一个到左边

到目前为止我已经

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

<LinearLayout
    android:id="@+id/home_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
    <!-- MAIN CONTENT WILL GO HERE -->
</LinearLayout>

<LinearLayout
    android:id="@+id/ad_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/home_layout"
    android:layout_alignParentBottom="true"
    android:gravity="bottom" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="right"
        android:background="@android:color/white"
        android:gravity="right"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="£12.50" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Rate1 **** " />
    </LinearLayout>
</LinearLayout>

</RelativeLayout>

产生

first attempt 现在我尝试在左侧添加第二个布局

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

<LinearLayout
    android:id="@+id/home_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
    <!-- MAIN CONTENT WILL GO HERE -->
</LinearLayout>

<LinearLayout
    android:id="@+id/ad_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/home_layout"
    android:layout_alignParentBottom="true"
    android:gravity="bottom" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="left"
        android:background="@android:color/white"
        android:gravity="left"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="£12.50" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Rate1 **** " />
    </LinearLayout>

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="right"
        android:background="@android:color/white"
        android:gravity="right"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="£12.50" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Rate1 **** " />
    </LinearLayout>
</LinearLayout>

</RelativeLayout>

产生:

enter image description here

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您的两个子线性布局都有

android:layout_width="fill_parent" 
android:layout_height="fill_parent"

这不起作用。如果您想要均匀分割空间,请使用layout_weight

答案 1 :(得分:1)

你可以做这样的事情:

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

    <LinearLayout
        android:id="@+id/home_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:layout_weight="1" >
        <!-- MAIN CONTENT WILL GO HERE -->
    </LinearLayout>

    <FrameLayout
        android:id="@+id/ad_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0" >

       <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:background="@android:color/white"
            android:gravity="left"
            android:orientation="vertical" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="£12.50" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Rate1 **** " />
        </LinearLayout>

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:background="@android:color/white"
            android:gravity="right"
            android:orientation="vertical" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="£13.50" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Rate2 **** " />
        </LinearLayout>
    </FrameLayout>

</LinearLayout>

答案 2 :(得分:1)

你应该为你的布局使用android:layout_weight属性,这样你就可以指定每个LinearLayout ViewGroup占用了多少屏幕,或者如上面的注释所指定的那样,你需要改变布局以便它们都可以不试图填写父ViewGroup。您可以将其设置为wrap_content,这可能看起来不太好,因为屏幕可能没有任何ViewGroup填充的空白