起源:使用惯LinearLayout的朋友都知道,若想实现对屏幕的等分,只需要设置Layout_weight的值即可。
可是在RelativeLayout布局下实现等分却不是那么容易。
下面就简单介绍如何在RelativeLayout下实现控件平分空间。
原理简单略带技巧,大家一看就懂。
首先来实现水平等分。
关键在于设置参照物,确定控件的方位。
关键代码如下:
<RelativeLayout
android:layout_width= "match_parent"
android:layout_height= "120dp">
<!-- 设置参照物 -->
<View
android:id= "@+id/strut"
android:layout_width= "0dp"
android:layout_height= "0dp"
android:layout_centerVertical="true" /> <ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignBottom="@id/strut"
android:layout_alignParentTop="true"
android:background="@drawable/bg_red"/> <ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignTop="@id/strut"
android:layout_alignParentBottom="true"
android:background="@drawable/bg_blue"/>
</RelativeLayout >
效果图如下:
再次来实现垂直等分,原理与水平相似,只是修改方位。
关键代码如下:
<RelativeLayout
android:layout_width= "match_parent"
android:layout_height= "200dp">
<View
android:id= "@+id/strut"
android:layout_width= "0dp"
android:layout_height= "0dp"
android:layout_centerHorizontal="true" /> <ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignRight="@id/strut"
android:layout_alignParentLeft="true"
android:background="@drawable/hankukko"/> <ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignLeft="@id/strut"
android:layout_alignParentRight="true"
android:background="@drawable/chopper"/>
</RelativeLayout >
效果图如下:
尾注:如果想要实现更加复杂的多等分,还是推荐使用LinearLayout设置权重的方法。