android学习布局管理器的一些心得2——基础篇

来源:互联网 发布:java set contains 编辑:程序博客网 时间:2024/06/05 00:48

RelativeLayout ----- 相对布局

1.RelativeLayout不是相对于单体的布局,每一个组件的布局都要依赖另外一个或多个组件,这个布局表示的是一个组件相对于另一个组件(或者是整个RelativeLayout布局)的相对位置。

2.虽然这个布局管理器带有android:gravity属性,但是一般都不使用这个属性,因为一旦固定了RelativeLayout总的对齐方式,那么就不能再去设置其子组件的相对位置了,因为设置了也没用。

3.RelativeLayout的子组件中,如下方法设置这个子组件相对整个布局管理器的位置:

android:layout_centerHorizontal ----- 水平居中

android:layout_centerVertical ------- 垂直居中

android:layout_centerInParent ------ 在中央位置(其实同时使用水平居中和垂直居中也可以达到这个效果)

android:layout_alignParentLeft ------ 与左边对齐

android:layout_alignParentRight ------  与右边对齐

android:layout_alignParentTop -------- 与顶部对齐

android:layout_alignParentBottom ------- 与底部对齐

4.RelativeLayout的子组件中,如下方法设置这个子组件相对另一个组件的位置(里面传入对应组件的android:id) :

//下面4个方法分别设置组件位于指定ID组件的相对位置

android:layout_toRightOf ---- 右侧

android:layout_toLeftOf ------- 左侧

android:layout_above ------- 上方

android:layout_below ------- 下方

//设置好相对位置之后,下面4个方法分别设置该组件与指定ID组件的对齐方式

android:layout_alignTop ------  上边界对齐

android:layout_alignBottom ------ 下边界对齐

android:layout_alignRight ---- 右边界对齐

android:layout_alignLeft -------  左边界对齐


GridLayout ------ 网格布局

1.Android 4.0 才有的布局,在创Android项目的时候,在最低版本要求的时候至少要选4.0以上的,如下图:


2.GridLayout常用易忘的方法:

android:rowCount(setRowCount(int)) -------  行数

android:columnCount(setColumnCount(int)) -------- 列数

3.GridLayout子容器的方法:

android:layout_column ------- 指定该组件位于j列

android:layout_row ------- 指定该组件位于i行

android:layout:gravity(setGravity) ----- 设置该组件以何种方式占据该网络的空间(也就是如果还有剩余的空间,用特定的设置可以把组件拉长以达到占满空间的效果)

android:layout_columnSpan -------  设置该子组件在GridLayout横向上夸几列

android:layout_rowSpan ---------- 设置该子组件在GridLayout纵向上夸几行


对于指定组件的位置,可以用GridLayout.Spec这个内部类来用代码动态指定,代码如下:

//指定该组件所在的行GridLayout.Spec rowSpec = GridLayout.spec(i/4+2);//指定该组件所在的列GridLayout.Spec columnSpec = GridLayout.spec(i%4);//构造一个特定位置GridLayout.LayoutParams params = new GridLayout.LayoutParams(rowSpec, columnSpec);//指定该组件占满父容器params.setGravity(Gravity.FILL_HORIZONTAL);//向GridLayout中利用这个位置加入组件layout.addView(bn, params);
如果需要指定该子组件在GridLayout横向上夸几列几行,那么就要使用GridLayout.spec的一个重载的方法,如下:

GridLayout.Spec columnSpec = GridLayout.spec(0, 2);
这个方法指定该组件位于第0列,而且夸2行




0 0
原创粉丝点击