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

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值