最开始做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. 安卓按比例布局,layout_weight用法
  3. 布局资源(layout)的简单使用
  4. 深入浅出android/ophone UI实现水平布局的Tab控件
  5. Android Studio XML布局控件不提示属性以及不换行问题
  6. AndroidUI设计之布局-详细解析布局实现
  7. Android中的常用布局
  8. 跟我学Android之六 布局

随机推荐

  1. Android解决输入法自动弹出方法大全
  2. Android(安卓)Handler 异步消息处理机制
  3. Android使用cmake+ndk输出原生Log
  4. 使用GDB调试Android(安卓)NDK native(C/C
  5. Android资料之-EditText中的inputType
  6. Android(安卓)SDK Manager
  7. 关于AVD启动失败的问题--找不到文件篇
  8. Android(安卓)4.4(KitKat)窗口管理子系统
  9. Android(安卓)数字签名学习笔记
  10. android之视频播放