Android布局控件

Android的布局控件也可以称为容器控件,它们都继承自ViewGroup,非可视化控件。

Android布局控件分为六类:

LinearLayout(线性布局)
RelativeLayout(相对布局)
TableLayout(表格布局)
FrameLayout(帧布局)
AbsoluteLayout(绝对布局)
GridLayout(网格布局)

LinearLayout中Weight(权重)属性:分配完所有控件的区域后,剩下的区域按照Weight值的比例进行分配。

计算方法(使用宽权重时,LinearLayout设置水平,高权重,LinearLayout设置垂直):

1.当设置同一容器下的所有可视化控件(比如TextView)的宽(高)为0dp时(宽和高只能设置其中一个为0dp),并且设置了Weight属性,这个容器下的可视化控件会按照Weight的比例来分配宽度(高度)。

2.同上如果都设置为wrap_content,系统会先分配控件大小,再把剩余的区域按Weight比例分配给设置Weight属性的控件。

3.同上都设置为match_parent,比如有三个TextView,宽高都是设置为match_parent,设置每个TextView的Weight为1,2,3。屏幕只有一个我们设置为1,现在需要三个,1-3=-2,剩余的区域为-2,将剩余区域按照Weight比例分配给每个控件

第一个TextView真正区域为1+(-2*(1/6))=2/3;

第二个TextView真正区域为1+(-2*(2/6))=1/3

第三个TextView真正区域为1+(-2*(3/6))=0

所以你会发现屏幕上只有第一个和第二个TextView,分别占屏幕的比例时2:1
Java
代码设置权重:

setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,     
        LayoutParams.WRAP_CONTENT, 1));

orientation属性

值为vertical,只有水平方向的设置才起作用,垂直方向的设置不起作用。
即:leftright,center_horizontal 是生效的。
值为horizontal,只有垂直方向的设置才起作用,水平方向的设置不起作用。
即:topbottom,center_vertical 是生效的。

divider属性
android:divider设置作为分割线的图片
android:showDividers设置分割线的位置,none(无),begining(开始),end(结束),middle(每两个组件间)
dividerPadding设置分割线的Padding

RelativeLayout当界面非常复杂时,我们往往采用RelativeLayout代替LinearLayout,使用LinearLayout
做复杂的界面会出现多次嵌套,这样会降低UI的渲染速度

注意一点:margin可以设置为负数

TableLayout(表格布局):基本不用。

FrameLayout(帧布局):默认将其中的控件放在左上角,最下面的控件在最上面,上下控件呈现覆盖模式,不长使用,记住两个属性:
android:foreground:设置改帧布局容器的前景图像
android:foregroundGravity:设置前景图像显示的位置

GridLayout(网格布局) :不常用,注意是Android4.0后推出的,低版本使用需要引入v7包,个人理解这个容器改善了表格布局。

AbsoluteLayout(绝对布局) :基本不使用,因为这个容器是通过x,y的坐标来确定控件的位置,由于Android有大量不同的屏幕尺寸,所以同样坐标在4寸手机上显示正常,到5寸手机上可能就会变形。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值