LinearLayou(线性布局布局)
一些重要的属性:
一orientation(朝向) 该属性值有两种一种是垂直朝向(verticle),还有一个是水平朝向(horizontal)
二layout_weight(权重):
看下面一个例子: 该布局填充整个屏幕,其中有三个字控件,分别占据头部,底部,中间
在上一篇博客中我们通过相对布局也可以实现(把高设置成0,height=0)
更多关于该属性的细节可以浏览http://hi.baidu.com/mendynew/item/39cd374192770bab60d7b915
运行结果:
下面一个例子,所有子空间的都是相同的宽度.也是通过该属性来实现的.
下面看一个简单表单的例子,
在上一篇博客中通过相对布局也能布局出这样的,但是从效率上说,相对布局要好很多,效率要高.从这个例子上看线性布局的层级要深.
weight属性还可以实现如下布局:
运行结果:
通过相对布局也是可以实现这样的布局,把button设置为android:layout_alignParentBottom ="true"
三gravity(重心)
下面来看一个例子:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, VERTICAL_ID, 0, R.string.linear_layout_8_vertical);
menu.add(0, HORIZONTAL_ID, 0, R.string.linear_layout_8_horizontal);
menu.add(0, TOP_ID, 0, R.string.linear_layout_8_top);
menu.add(0, MIDDLE_ID, 0, R.string.linear_layout_8_middle);
menu.add(0, BOTTOM_ID, 0, R.string.linear_layout_8_bottom);
menu.add(0, LEFT_ID, 0, R.string.linear_layout_8_left);
menu.add(0, CENTER_ID, 0, R.string.linear_layout_8_center);
menu.add(0, RIGHT_ID, 0, R.string.linear_layout_8_right);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case VERTICAL_ID:
mLinearLayout.setOrientation(LinearLayout.VERTICAL);
return true;
case HORIZONTAL_ID:
mLinearLayout.setOrientation(LinearLayout.HORIZONTAL);
return true;
case TOP_ID:
mLinearLayout.setVerticalGravity(Gravity.TOP);
return true;
case MIDDLE_ID:
mLinearLayout.setVerticalGravity(Gravity.CENTER_VERTICAL);
return true;
case BOTTOM_ID:
mLinearLayout.setVerticalGravity(Gravity.BOTTOM);
return true;
case LEFT_ID:
mLinearLayout.setHorizontalGravity(Gravity.LEFT);
return true;
case CENTER_ID:
mLinearLayout.setHorizontalGravity(Gravity.CENTER_HORIZONTAL);
return true;
case RIGHT_ID:
mLinearLayout.setHorizontalGravity(Gravity.RIGHT);
return true;
}
return super.onOptionsItemSelected(item);
}
以上设置的gravity是通过Java代码设置的,也可以通过xml配置
需要注意的是layout_gravity和gravity的区别,前者是该控件相对于父控件的重心(gravity),后者该控件的子空间的重心(gravity)
欢迎转载,转载请注明出处:http://blog.csdn.net/johnny901114/article/details/7866864