Android UI Layout总结之5大布局(2)

TableLayout 将子元素的位置分配到行或列中。一个TableLayout 由许多的TableRow 组成,每个TableRow 都会定义一个 row(事实上,你可以定义其它的子对象)。

TableLayout 容器不会显示row 、cloumns 或cell 的边框线。每个row拥有0个或多个的cell;每个cell 拥有一个View对象。

表格由列和行组成许多的单元格。表格允许单元格为空。单元格不能跨列,这与HTML 中的不一样。

特殊的参数:

android:stretchColumns 伸展的列的索引 android:shrinkColumns 收缩的列的索引 android:collapseColumns 倒塌的列的索引(即销毁)

表示两行两列的一个表格。 android:gravity=”center”书面解释是权重比。其实就是让它居中显示。

它还可以动态添加里面的每行每列。如下代码所示:

TableLayout tableLayout = (TableLayout) findViewById(R.id.table01); TableRow tableRow = new TableRow(this); TextView temp = new TextView(this); temp.setText("text的值"); tableRow.addView(temp);

android:stretchColumns=”1,2,3,4″ 它的意思就是自动拉伸1,2,3,4列。

## 4.AbsoluteLayout (绝对布局)

AbsoluteLayout可以让子元素指定准确的x/y坐标值,并显示在屏幕上。(0, 0)为左上角,当向下或向右移动时,坐标值将变大。

AbsoluteLayout没有页边框,允许元素之间互相重叠(尽管不推荐)。我们通常不推荐使用

AbsoluteLayout,除非你有正当理由要使用它,因为它使界面代码太过刚性,以至于在不同的设备上可能不能很好地工作。

LayoutParams中特殊的参数 :

layout_x x方向的坐标 layout_y y方向的坐标 ## 5.FrameLayout ( 帧布局 )

FrameLayout是最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象。比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前 一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。

里面可以放多个控件,不过控件的位置都是相对位置

LayoutParams中特殊的参数 :

layout_gravity 相对于父元素的重力值(用法同LinearLayout)

注意事项:

各布局不要乱用各自的属性。比如把属于AbsoluteLayout布局的android:layout_x和android:layout_y用到LinearLayout布局或RelativeLayout布局,或者把RelativeLayout布局的 below,rightof等属性应用到其他布局中。这样做虽然不会报错,但是根本达不到我们需要的效果。

关于android:layout_width=”fill_parent”和android:layout_height=”wrap_content” ,这是对每个布局宽和高的设置。wrap_content可表示随着其中控件的不同而改变这个布局的宽度或高度,类似于自动设置宽和高,fill_parent使布局填充整个屏幕,另外还有一种match_parent,它本质上和 fill_parent 一样,并从API Level8开始替代fill_parent。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ad480ce04318fe48576eddcee6a42689.html