Android 三大布局的通用属性和各自的特有属性.

通用属性:
  1. layout_width 和 layout_height

  2. margin 和 padding
    margin是外边距, padding是内填充.

  3. gravity和layout_gravity区别:
    gravity属性:设置该view中的内容相对于自己的位置
    比如一个TextView上面的text. 你可以设置该text 在view的靠左,靠右等位置.
    layout_gravity属性:是用来设置该view相对与父view 的位置。
    比如一个TextView 在Linearlayout里,你可以通过设置该属性把该TextView放在父布局Linearlayout靠左靠右等位置。

 
LinearLayout的特有属性:

orientation: 定义子view的排列方向, 默认为horizontal.
layout_weight: LinearLayout中的子view, 在剩余空间所占的大小, 默认值为0.
经典用法是: 为某个子view设置宽度为0dp, android:layout_weight="1", 用来填充整个LinearLayout的剩余空间.



    
    
    


RelativeLayout的特有属性:

RelativeLayout中的子view也可以重叠覆盖, 所以这并不是和FrameLayout的区别.
FrameLayout主要是结合Fragment使用.

RelativeLayout的16种特有属性:

  • 相对于兄弟控件的位置属性
android:layout_above="@id/center_btn"处于某一个控件的上方
android:layout_below="@id/center_btn"处于某一个控件的下方
android:layout_toLeftOf="@id/center_btn"处于某一个控件的左边
android:layout_toRightOf="@id/center_btn"处于某一个控件的右边
  • 相对于兄弟控件的对齐属性
android:layout_alignLeft="@id/center_btn"和某一个控件的左边对齐
android:layout_alignRight="@id/center_btn"和某一个控件的右边对齐
android:layout_alignTop="@id/center_btn"和某一个控件的上方对齐
android:layout_alignBottom="@id/center_btn"和某一个控件的下方对齐
  • 相对于父控件的位置对齐属性
android:layout_alignParentRight="true"和父容器右边对齐
android:layout_alignParentBottom="true"和父容器下边对齐
android:layout_alignParentLeft="true"和父容器左边对齐
android:layout_alignParentTop="true"和父容器上边对齐
android:layout_centerHorizontal="true"控件相对于父容器水平居中
android:layout_centerVertical="true"控件相对于父容器垂直居中
android:layout_centerInParent="true"处于父容器正中间

*其他属性

android:layout_alignBaseline="@id/tv1"基线对齐(控件中的文本对齐)

经典用法:
在LinearLayout中, 使用android:layout_weight="1"和把宽度定义为0dp, 实现某个子view填充剩余空间.
用RelativeLayout实现相同功能的思路是:
以3个子view为例:
第一个alignParentLeft, 第三个alignParentRight, 中间这个定义宽度是match_parent, 但使用layout_toLeftOf第三个, layout_toRightOf第一个, 这样就限定了第二个所占的空间把剩余空间都占满了.

FrameLayout

FrameLayout没有特有属性
布局特点:放入其中的所有元素都被放置在最左上的区域,而且无法为这些元素指定一个确切的位置,下一个子元素会重叠覆盖上一个子元素.
可以配合使用layout_marginLeft/* 和 layout_gravity为子元素确定位置, 只是无法确定2个子元素之间的相对位置.

应用场景:一般结合Fragment使用, 也适合浏览单张图片。

开发布局时的小技巧:

给子布局设计背景色, 很直观的确认各自所占的空间和位置, 等开发完成后再把背景色去掉.

refer to:
http://codecloud.net/11378.html
http://www.cnblogs.com/anni-qianqian/p/5444037.html

你可能感兴趣的:(Android 三大布局的通用属性和各自的特有属性.)