0

我想要一个相对布局内的两个视图,它们的高度相同,一个低于另一个。我不能使用 LinearLayout 的权重,所以我必须想出另一种方法来做到这一点。

根据我在 Google 上搜索和阅读的内容,我发现作为在父视图中使用锚点 View 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>

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

4

1 回答 1

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>
于 2013-10-02T02:17:12.543 回答