5

我对 relativelayout 有一个问题,它的子级可以使用 layout_below 和 layout_weight 来设置其百分比高度。

例如,我们有一个相对布局,在其中我们有三个带有文本视图的线性布局。现在,我想为其中三个(线性布局)设置相对布局总高度的 25、50、25 %。我怎么能做到呢?

我找到了weight_sum 和 relativelayout (CLICK)的解决方案,但它不使用 layout_below。

我怎样才能解决这个问题?

我试图在所有线性布局中添加额外的线性布局,但后来我无法使用 layout_below。

这是概念图的想法:

在此处输入图像描述

这是我的代码:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/linlay_leftcol_notification_header" >

    <LinearLayout
        android:id="@+id/linlay_leftcol_clock_theday"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/tv_theday"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/theday"
        android:textColor="#FFFFFF" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linlay_leftcol_clock_thetime"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/linlay_leftcol_clock_theday" >

        <TextView
            android:id="@+id/tv_thetime"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/thetime"
            android:textColor="#FFFFFF" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linlay_leftcol_clock_thenumber_themonth_theyear"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/linlay_leftcol_clock_thetime" >

        <TextView
            android:id="@+id/tv_thenumberofday_themonth_theyear"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/thenumberofday_themonth_theyear"
            android:textColor="#FFFFFF" />
    </LinearLayout>
</RelativeLayout>
4

4 回答 4

13

试试这个...

<?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="match_parent"
    android:background="#ff00ff"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_weight="1"
        android:background="#ffff00"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/textView0"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="Hello 1"
            android:textColor="#000000"
            android:textSize="15dp" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_weight="2"
        android:background="#00ffff"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="Hello 2"
            android:textColor="#000000"
            android:textSize="15dp" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_weight="1"
        android:background="#ffff00"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/textView2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="Hello 3"
            android:textColor="#000000"
            android:textSize="15dp" />
    </RelativeLayout>
</LinearLayout>
于 2012-10-16T11:27:09.920 回答
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" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight=".15"
        android:background="@android:color/background_dark"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/rel_1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#A52A2A" >

            <TextView
                android:id="@+id/tv_theday"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="1st layout"
                android:textColor="#FFFFFF" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/rel_2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#8B008B" >

            <TextView
                android:id="@+id/tv_theday"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="2ndlayout"
                android:textColor="#FFFFFF" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/rel_3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#00008B" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="3rd layout"
                android:textColor="#FFFFFF" />
        </RelativeLayout>
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/rel_side"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight=".75"
        android:background="#ff0000" >

        <TextView
            android:id="@+id/tv_theday"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="side layout"
            android:textColor="#FFFFFF" />
    </RelativeLayout>

</LinearLayout>
于 2012-10-16T09:59:08.087 回答
0

您可以使用权重或相对布局属性。您可以像这样制作 25,50,25 ...您将父级左对齐第一个 textview,对齐父级右对齐,其他 textview,其余的 textview 对齐第一个左侧和最后一个右侧.

于 2012-10-16T09:36:24.443 回答
0

使用表格布局并在其中放置文本视图。表格布局有一个属性“拉伸列”。在那里你可以像这样将大小称为“0,2,1”......

于 2012-10-16T09:41:27.487 回答