我想在父布局(相对布局)中使用两个子布局(一个线性布局和一个相对布局),这样两个子布局都将占据屏幕的一半,每个子项内部的项目布局不会导致一个子布局获得比另一个更宽的布局!
答案 0 :(得分:1)
这很简单,在LinearLayout的子代中使用参数layout_weight,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
</RelativeLayout>
<RelativeLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
</RelativeLayout>
</LinearLayout>
答案 1 :(得分:0)
如果我从你的插图中理解正确,红色框是RelativeLayout,而绿色框是LinearLayout和RelativeLayout。
一个简单的解决方案是将一个空的View置于RelativeLayout中心并将两个子视图对齐它:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toLeftOf="@+id/v_center" />
<View
android:id="@+id/v_center"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/v_center" />
</RelativeLayout>
这里一个不错的小小的好处是你可以通过指定视图的尺寸在两者之间提供一些间距。
但要注意,RelativeLayouts效率不高,嵌套它们是一个特别糟糕的主意。我建议使用层次结构查看器工具检查布局时序以确保它相对较快,并尝试避免以这种方式嵌套布局。