最开始做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.绝对布局和表格布局。

  1. 绝对布局(AbsoluteLayout)不建议使用,对于不同屏幕适配性差。表格布局TableLayout 将子元素的位置分配到行或列中。一个TableLayout 由许多的TableRow 组成,每个TableRow 都会定义一个 row。项目中布局按键用到它,其他的地方没怎么用到。


更多相关文章

  1. android上一些方法的区别和用法的注意事项
  2. Android开发者实用代码片段 与大家分享
  3. [android]在上下文菜单的选中事件中获取列表选中的元素
  4. android上一些方法的区别和用法的注意事项
  5. Android(安卓)实现View中添加子元素的动态效果
  6. ImageView的scaletype属性
  7. android开发 列表显示(ListView)
  8. Android布局(序章)
  9. My Android成长之路(四)——【xml解析之XmlPull】

随机推荐

  1. Android(安卓)Studio 出现 Gradle's depe
  2. Android多点触控
  3. Fuchsia OS 要取代 Android?小论Google Fu
  4. Android(安卓)源码分析-Dalvik 虚拟机创
  5. Android使用JNI实现Java与C之间传递数据
  6. Android二维码扫描之ZXing快速项目集成
  7. Android(安卓)onTouchEvent, onClick及on
  8. Android(安卓)创建与解析XML(一)—— 概述
  9. Android 头像上传
  10. 最强 Android(安卓)Studio 使用小技巧和