Android:2个相对布局划分为一半的屏幕

我多次尝试绘制2个水平alignment的相对布局,并分成两半。

在这里输入图像说明

我用油漆devise图像来解释我的意思。

任何build议?

Solutions Collecting From Web of "Android:2个相对布局划分为一半的屏幕"

您可以将这2个RelativeLayouts放置在一个LinearLayout中,并且水平方向,然后使用两个RelativeLayouts的权重 。 这将把LinearLayout分成两个相等的部分。

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:baselineAligned="false"> <RelativeLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"> </RelativeLayout> <RelativeLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"> </RelativeLayout> </LinearLayout> 

不需要使用LinearLayout来完成相同任务的另一种方法是在父布局中间放置一个中心alignment的“填充”,然后将其他元素与其alignment。 如果将半angular元素的宽度设置为match_parent,但是将它们的左右两侧alignment,则最终会缩小以适合它们。

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.EqualWidthExample" > <!-- An invisible view aligned to the center of the parent. Allows other views to be arranged on either side --> <View android:id="@+id/centerShim" android:layout_height="match_parent" android:layout_width="0dp" android:visibility="invisible" android:layout_centerHorizontal="true"/> <!--Set width to match_parent sets maximum width. alignParentLeft aligns the left edge of this view with the left edge of its parent. toLeftOf sets the right edge of this view to align with the left edge of the given view. The result of all three settings is that this view will always take up exactly half of the width of its parent, however wide that may be. --> <Button android:id="@+id/btLeft" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/centerShim" android:text="Left Button" /> <!--Same deal, but on the right --> <Button android:id="@+id/btRight" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_toRightOf="@+id/centerShim" android:layout_below="@+id/tvLeft" android:text="Right Button" /> </RelativeLayout> 

现在您可以使用PercentRelativeLayout轻松完成

 <android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" tools:context=".MainActivity"> <Button android:id="@+id/button" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="Button" app:layout_widthPercent="50%"/> <Button android:id="@+id/button2" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toRightOf="@id/button" android:text="Button 2" app:layout_widthPercent="50%"/> </android.support.percent.PercentRelativeLayout> 

不要忘记添加gradle依赖

 dependencies { compile 'com.android.support:percent:25.3.1' } 

代码在github

更新

PercentRelativeLayout自API级别26.0.0以后不推荐使用

我在图画中看到4个相关布局…?

如果你的意思是把它们放在一个LinearLayout(水平方向)中,让它们都有一个match_parent的宽度,并给出两个相对布局的权重为1