我希望RelativeLayout中的两个视图具有相同的高度,一个在另一个之下。 我不能使用LinearLayout的重量,所以我必须找到另一种方法。
从我搜索和阅读的内容我发现,作为一种解决方案,在父视图中使用锚视图centerHorizontal并将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>
我的代码是否存在错误,或者我试图解决它的方式从一开始就出错了?
答案 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>