将两个子布局放在父布局中,在Android中具有相同的权重分布

时间:2013-11-24 14:02:20

标签: android android-layout

我想在父布局(相对布局)中使用两个子布局(一个线性布局和一个相对布局),这样两个子布局都将占据屏幕的一半,每个子项内部的项目布局不会导致一个子布局获得比另一个更宽的布局! enter image description here

2 个答案:

答案 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效率不高,嵌套它们是一个特别糟糕的主意。我建议使用层次结构查看器工具检查布局时序以确保它相对较快,并尝试避免以这种方式嵌套布局。