控件的margin属性是用来控制控件之间的间距,那么当两个控件需要重叠时该如何进行布局呢?
最常用的做法是使用FrameLayout帧布局,但是帧布局不能像LinearLayout能设置比重layout_weight灵活。
如果要使用LinearLayout布局的灵活性,又要使控件进行重叠,这时就可以使用margin的负值来进行处理重叠。
例子:
布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:orientation="horizontal" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="-4dp"
android:layout_weight="1"
android:background="@drawable/register_bar_left_green"
android:gravity="center"
android:text="验证手机号码"
android:textSize="12sp" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="-4dp"
android:layout_marginRight="-4dp"
android:layout_weight="1.1"
android:background="@drawable/register_bar_mid_green"
android:gravity="center"
android:text="设置密码"
android:textSize="12sp" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="-4dp"
android:layout_marginRight="-4dp"
android:layout_weight="1.1"
android:background="@drawable/register_bar_mid_green"
android:gravity="center"
android:text="填写信息"
android:textSize="12sp" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="-4dp"
android:layout_weight="1.2"
android:background="@drawable/register_bar_right_green"
android:gravity="center"
android:text="完成"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>