android的 UI 布局总结
1.线性布局(LinearLayout)
线性布局最简单最好理解,也最常用,最实用。
android:orientation LinearLayout的对齐方式 : vertical(垂直) 和 horizontal(水平),线性布局中不可少的一项属性,没有会报错。
android:layout_weight 权重
android:layout_gravity 相对于父元素所处的位置,例如anroid:layout_gravity="left|center_vertical",元素在父元素中处于靠左垂直居中位置
说到这里不得不说下另一个非常相似的属性:android:gravity,不理解的时候很容易混淆。区别是:
-
android:gravity属性是对view中内容的限定.比如一个button 里面的text. 可以设定text在button中居中,也可以设置靠底水平居中center_horizontal,这个属性设定的是内部元素的位置。
-
android:layout_gravity是用来设置该view相对与父view的位置.比如还是那个button在linearlayout里,你想把该button放在linearlayout里靠左、靠右等位置就可以通过该属性设置.
比如一个LinearLay里的一个TextView,现在想把这个TextView里面的文字设定在水平居中位置。 如果TextView的android:layout_width=“match_parent”,这个时候怎么设置呢?这个时候就在TextView的属性里设置android:gravity=“center_horizontal”。因为这个TextView的宽度是占据整个父元素的啊,要让里面的文字居中,就需要设置TextView的android:gravity属性,这个属性是对view中内容的限定。 如果TextView的android:layout_width=“wrap_content”,这个时候就需要设置TextView的android:layout_gravity=“center_horizontal”了,TextView的宽度包裹文字,要让文字水平居中,就要让TextView在父元素中水平居中。
2.相对布局(RelativeLayout)
相对布局允许元素指定他们相对于其它元素或父元素的位置,复杂的布局多用这个。
android:layout_centerHrizontal="true/false" 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中,水平方向居中,垂直方向也居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左边缘android:layout_alignParentRight 贴紧父元素的右边缘android:layout_alignParentTop 贴紧父元素的上边缘android:layout_alignWithParentIfMissing 若找不到兄弟元素以父元素做参照物
android:layout_below="@+id/XXX" 在某元素的下方android:layout_above 在某元素的上方android:layout_toLeftOf 在某元素的左边android:layout_toRightOf 在某元素的右边android:layout_alignBaseLine 该控件的baseline和给定ID的控件的Baseline对齐android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
android:layout_alignTop和
android:layout_alignParentTop的区别就在于一个是和兄弟元素比较,一个是和父元素比较。
android:layout_marginBottom 离某元素底边缘的距离android:layout_marginLeft 离某元素左边缘的距离android:layout_marginRight 离某元素右边缘的距离android:layout_marginTop 离某元素上边缘的距
3.帧布局(FrameLayout)
FrameLayout是最简单的一个布局对象。所有放在布局里的控件,都按照层次堆叠在屏幕的左上角。后加进来的控件覆盖前面的控件。基于这个特性FrameLayout一般用来做动画,复杂布局还是用RelativeLayout好点。
4.绝对布局和表格布局。
-
绝对布局(AbsoluteLayout)不建议使用,对于不同屏幕适配性差。表格布局TableLayout 将子元素的位置分配到行或列中。一个TableLayout 由许多的TableRow 组成,每个TableRow 都会定义一个 row。项目中布局按键用到它,其他的地方没怎么用到。
更多相关文章
- android常用布局详解
- 安卓按比例布局,layout_weight用法
- 布局资源(layout)的简单使用
- 深入浅出android/ophone UI实现水平布局的Tab控件
- Android Studio XML布局控件不提示属性以及不换行问题
- AndroidUI设计之布局-详细解析布局实现
- Android中的常用布局
- 跟我学Android之六 布局