您的位置:首页 > 产品设计 > UI/UE

android的 UI 布局总结

2016-04-01 14:44 387 查看
最开始做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的区别就在于一个是和兄弟元素比较,一个是和父元素比较。[/code]
android:layout_marginBottom        离某元素底边缘的距离android:layout_marginLeft          离某元素左边缘的距离android:layout_marginRight         离某元素右边缘的距离android:layout_marginTop           离某元素上边缘的距
3.帧布局(FrameLayout)
FrameLayout是最简单的一个布局对象。所有放在布局里的控件,都按照层次堆叠在屏幕的左上角。后加进来的控件覆盖前面的控件。基于这个特性FrameLayout一般用来做动画,复杂布局还是用RelativeLayout好点。4.绝对布局和表格布局。绝对布局(AbsoluteLayout)不建议使用,对于不同屏幕适配性差。表格布局TableLayout 将子元素的位置分配到行或列中。一个TableLayout 由许多的TableRow 组成,每个TableRow 都会定义一个 row。项目中布局按键用到它,其他的地方没怎么用到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: