LinerLayout与RelativeLayout的需要注意的一同异同

一、共同点

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

四、应用以上这些属性已经足以应付一些比较简单的布局分布了,下面是一个实例:


 
   

 



 
 
LinerLayout与RelativeLayout的需要注意的一同异同_第1张图片
image.png

你可能感兴趣的:(LinerLayout与RelativeLayout的需要注意的一同异同)