一、共同点
padding 指的是该容器到边距的距离填充多大,padding四周填充,对应的看单词便很明了,不再翻译还有paddingLeft、 paddingRinght、 paddingBottom、 paddingTop、paddingStart、 paddingEnd
margin 两个边距之间的距离 Margin 四周边距的距离,对应的还有 MarginLeft、MarginRinght、MarginBottom、MarginTop、MarginStart、MarginEnd
layout_gravity 控件本身的位置 center 在布局的重心位置 centerHorizontal 水平方向居中 centerVertical 垂直方向居中 bottom 、 top、 left、 right、 fill垂直与水平方向均充满、 fill_horizotal 水平方向充满、 fill_vetical垂直方向充满、 clip_Horizontal、 clip_Vertical、 end、 start
gravity 控件中内容的位置 center 子控件父控件的重心位置,其它属性值为:centerHorizontal 、 centerVertical、 bottom、 top、 left 、 ringht、 fill fill_horizotal、 fill_vetical、 clip_Horizontal 、 clip_Vertical、 end 、 start
注意:若布局为LinerLayout,当LinerLayout的oritation= “vertical”时,那么layout_gravity垂直方向如:centerVertiacl 、bottom、top、fill_vetical、clip_vertical的属性就失效了;同理,当LinerLayout=“horizon”时,centerHorizontal、fill_horizotal、clip_Horizontal等失效。
二、LinerLayout独有
只能沿某一水平或者垂直方向排列,故经常以嵌套方式实现稍微灵活一点的排列布局。
oritation=“vertical”沿垂直方向排列
oritation=“horizon”沿水平方向排列
layout_weight 比重 一般用于等距分割各个控件间的距离,而不是根据某个屏幕的宽度或高度计算出控件间的距离,这样到尺寸不同的屏幕后就不适应了。
layout_weight 的值越大,所占的比重越大。
注意:如果要使控件在布局中水平等距排列,这时控件的layout_weight="0dp",layout_weitht="1"; 如果要使控件在布局中垂直等距排列,这时控件的layout_height="0dp",layout_weitht="1"
三、RelativeLayout独有
布局比较灵活,不需要多层嵌套,降低LinerLayout的嵌套层级。
主要用于布局是非线性排列的情况,要为每个控件加上layout_id="@id/x"属性,然后再确定另一个控件是相对于那个控件的哪个位置,属性主要有以下所列出的:
a对于b的位置:layout_toEndOf 、 layout_toLeftOf、 layout_toRightOf、 layout_toStartOf 、 layout_bellow、 layout_above
沿着父布局的位置layout_alignParentRight --在父布局的右边边距对齐、layout_alignParentTop沿着父布局的顶端边距对齐、 layout_alignBaseline layout_alignParenEnd 、 layout_alignParentLeft、 layout_alignParentStart layout_alignRight
沿着x控件的边距对齐:layout_alignLeft--在x控件的左边距对齐、 layout_alignStart 、 layout_alignStart、 layout_alignTop、 layout_alignEnd 、 layout_alignLeft
四、应用以上这些属性已经足以应付一些比较简单的布局分布了,下面是一个实例:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp">
<View
android:id="@+id/r1"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/colorPrimary"/>
<View
android:id="@+id/r2"
android:layout_below="@+id/r1"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/colorPrimary"/>
<View
android:id="@+id/r3"
android:layout_below="@+id/r2"
android:layout_marginTop="20dp"
android:layout_width="60dp"
android:layout_height="20dp"
android:background="@color/colorAccent"/> <View
android:id="@+id/r4"
android:layout_below="@+id/r2"
android:layout_alignParentRight="true"
android:layout_marginTop="20dp"
android:layout_width="60dp"
android:layout_height="20dp"
android:background="@color/colorAccent"/><LinearLayout
android:layout_below="@+id/r3"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="70dp" >
<View
android:id="@+id/r6"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/colorPrimaryDark"/>
<View
android:id="@+id/r7"
android:layout_width="0dp"
android:layout_marginLeft="10dp"
android:layout_height="100dp"
android:layout_weight="1"
android:background="@color/colorPrimaryDark"/>
<View
android:id="@+id/r8"
android:layout_width="0dp"
android:layout_marginLeft="10dp"
android:layout_height="100dp"
android:layout_weight="1"
android:background="@color/colorPrimaryDark"/>
</LinearLayout>
</RelativeLayout>