天天看点

android 布局属性和UI控件

1.Anroid  RelativeLayout 属性

  • 相对于给定ID 控件

android:layout_above 将该控件的底部置于给定ID的控件之上

android:layout_below 将该控件的顶部置于给定ID的控件之下

android:layout_toLeftOf 将该控件的右边缘与给定ID的控件的左边缘对齐

android:layout_toRightOf 和上面相反

android:layout_alignBaseline 将该控件的baseline 与给定ID的baseline对齐

android:layout_alignTop 将该控件的顶部与给定ID的顶部边缘对齐

android:layout_alignButtom 将该控件的底部边缘与给定ID 的底部边缘对齐

android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐

android:layout_alignRight 将该控件的左边缘与给定ID的右边缘对齐

  • 相对于父组件

android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐

android:layout_alignParentBottom 为ture, 将该控件的底部与其父控件的底部对齐

android:layout_alignParentLeft 为true, 将该控件的左边与其父控件的左边对齐

android:layout_alignParentRight 为true, 将该控件的右边与其父控件的右边对齐

  • 居中

android:layout_centerHorizontal 如果为true, 将该控件置于水平居中

android:layout_centerVertical 如果为true, 将该控件置于垂直居中

android:layout_centerInParent 如果为true, 将该控件置于父控件的中央

  • 指定移动像素

android:layout_marginTop 上偏移的值(该控件的顶部与其上面控件的距离,列:若button1在button2的上面,则为 button1底部和button2顶部的距离,以下类推)

android:layout_marginBottom 下偏移的值

android:layout_marginLeft 左偏移的值

android:layout_marginRight 右偏移的值

2.Linear Layout 线性布局

  • orientation : 

容器内元素的排列方式。 vertical: 垂直排列, horizontal:水平排列;

在代码中可以通过setOrientation() 进行动态改变

  • baselineAligned:

一般情况下默认为true ,代表在同一方向的组件都基于第一个组件对齐。

3.TableLayout 表格布局

  • 表格布局中

每一行用《TabRow》括起来,在<TableLayout> 中可以定义如下属性

android:shrinkColumns="1" 表明第2个控件如果里面的内容过多,会收缩,扩展到第二行,而不是延伸

android:stretchColumns="2" 如果有空白,第3个控件填充(从0开始)

  • 控件设置

android:layout_column="2"将此控件放在第3个位置

android:layout_span="2" 此控件占据第2个单元位置

4.GridLayout 网格布局

  • 布局方式:

共分为水平和垂直两种方式,默认是水平布局

android:columnCount="4" 设置列数为4

android:rowCount="4"设置行数为4

  • 在控件中:

android:layout_row="0" 表示从第一行开始

android:layout_column="0"表示从第一列开始

android:layout_rowSpan 横跨多行

android:layout_columnSpan 横跨多列

5.一些常用的公共属性 介绍

  • layout_width :宽

fill_parent: 宽度和父元素相同, wrap_content:宽度随本身的内容所调整,或指定px值

  • layout_height :高

fill_parent: 高度和父元素相同, wrap_content: 高度随本身的内容所调整,或指定px值

  • background :背景
  • padding :设置边距 

该控件中的内容与该控件自身边框的距离

可以具体设置paddingBottom, paddingLeft, paddingRight, paddingTop来设置不同的px值

  • id ——object的 id 号
  • layout_weight :权重 

将剩余的空间按权重分配

所有的view的layout_weight缺省值都是为0,意味着他们只在屏幕上占据它们需要显示的空间大小。activity根据这个View的比0大的layout_weight值来划分剩余的空间和其它Views定义的layout_weight也按比例进行空间的划分。

给个例子:假设我们在水平行上有一个文本标签和两个文本编辑框view. 文本标签没有定义layout_weight 值,所以它将占据最小的需要提供的空间. 如果每个文本框view的layout_weight 都被设置为1, 在父布局中的剩余的宽度将被它们平分.如果一个文本view的layout_weight值为2,另外一个是1, 那么剩余空间的三分之一将给第一个文本框,三分之二将给第二个文本框

  • layout_gravity ——该组件相对于父窗口的对于方式
  • gravity ——该组件中的内容相对于该组件的对齐方式