android儿童在relativelayout内相同的高度

时间:2013-10-02 01:26:14

标签: android android-layout

我希望RelativeLayout中的两个视图具有相同的高度,一个在另一个之下。 我不能使用LinearLayout的重量,所以我必须找到另一种方法。

从我搜索和阅读的内容我发现,作为一种解决方案,在父视图中使用锚视图centerHorizo​​ntal并将2个子项放在一个上面,一个放在该锚视图下面,但它似乎不起作用。

到目前为止我的代码是:

    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="2"
    android:gravity="top" >

        <View android:id="@+id/anchor"
            android:layout_width="0dp"
            android:layout_height="match_parent" 
            android:layout_centerHorizontal="true"
            android:background="#000"/>


            <RelativeLayout 
                 android:id="@+id/toplayout"                    
                 android:background="#990000"                   
                 android:layout_above="@+id/anchor"
                 android:orientation="horizontal"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent" >

            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/bottomlayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@+id/anchor">

                <RatingBar
                    android:id="@+id/ratingBar1"
                    android:layout_width="218dp"
                    android:layout_height="wrap_content" />

           </RelativeLayout>        


   </RelativeLayout>

我的代码是否存在错误,或者我试图解决它的方式从一开始就出错了?

1 个答案:

答案 0 :(得分:3)

你的方法是正确的,但锚点视图你将它的布局设置为中央水平,但它应该是中心垂直,你也可以使用对齐顶部和底部来加工视图边缘

   <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:gravity="top" >


    <RelativeLayout
        android:id="@+id/toplayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#990000"
        android:orientation="horizontal"
        android:layout_alignParentTop="true"
        android:layout_alignBottom="@+id/anchor"
        android:layout_above="@+id/anchor">
    </RelativeLayout>

    <View android:id="@+id/anchor"
        android:layout_width="fill_parent"
        android:layout_height="0dp" 
        android:layout_centerVertical="true"
        android:background="#000"/>

    <RelativeLayout
        android:id="@+id/bottomlayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/anchor"
        android:layout_alignParentBottom="true"
        android:layout_alignTop="@+id/anchor" >

        <RatingBar
            android:id="@+id/ratingBar1"
            android:layout_width="218dp"
            android:layout_height="wrap_content" />
    </RelativeLayout>
</RelativeLayout>