如何实现这种布局?

时间:2011-07-01 12:22:37

标签: android android-layout

我想将当前视图划分为4个区域(不将屏幕划分为4,但划分视图)如下:

我希望视图具有以下大小的布局:

enter image description here

水平分为每个视图的一半。 在垂直方向上,上部区域具有 1/3 视图高度,下部区域具有 2/3 视图高度。

成功地将我的观点划分为4个相等大小的区域

<?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/top_area"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="horizontal"


    >
        <LinearLayout
            android:id="@+id/top_left_area"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="@drawable/content_blue_bg"
            >
            <TextView

                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="TOP LEFT"/>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/top_right_area"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="@drawable/content_blue_bg"
            >
            <TextView

                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="TOP RIGHT"/>
        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/bottom_area"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"    
        android:orientation="horizontal"
        >

        <LinearLayout
            android:id="@+id/bottom_left_area"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"

            >

                <TextView 
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               android:text="BOTTOM LEFT"/>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/bottom_right_area"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="@drawable/content_blue_bg"
            >
            <TextView

                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="BOTTOM RIGHT"/>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

但是如何为超级区域提供1/3视图高度,为较低区域提供2/3视图高度?

2 个答案:

答案 0 :(得分:3)

 <?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/top_area"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:orientation="horizontal"
>
    <LinearLayout
        android:id="@+id/top_left_area"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@drawable/content_blue_bg"
        >
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="TOP LEFT"/>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/top_right_area"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@drawable/content_blue_bg"
        >
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="TOP RIGHT"/>
    </LinearLayout>
</LinearLayout>

<LinearLayout
    android:id="@+id/bottom_area"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="2"    
    android:orientation="horizontal"
    >
    <LinearLayout
        android:id="@+id/bottom_left_area"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        >

            <TextView 
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:text="BOTTOM LEFT"/>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/bottom_right_area"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@drawable/content_blue_bg"
        >
        <TextView

            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="BOTTOM RIGHT"/>
    </LinearLayout>
</LinearLayout>

您缺少的是将底部布局设置为70%,将顶部布局设置为30%

这刚刚发布在我的推特http://blog.stylingandroid.com/archives/297上: - )

答案 1 :(得分:1)

只需将android:layout_weight LinearLayout的bottom_area更改为2而不是1