android 布局管理器

       为了更好的管理android应用的用户界面里的各组件,android提供了布局管理器,通过使用布局管理器,android应用的图形用户界面具有良好的平台无关性。android布局管理器可以根据运行平台来调整组件的大小,而程序员要做的只是为容器选择合适的布局管理器。
      与Swing界面编程不同的是,android布局管理器本身就是一个UI组件,所有的布局管理器就是ViewGroup的子类。


线性布局:

      线性布局是由LinearLayout类来代表,线性布局有些像Swing编程中的Box,他们都会将容器中的组件一个挨一个的排列起来。LinearLayout可以控制各个组件横向排列(通过设置android:orientation属性控制),也可以控制各组件纵向排列。
      我们可以通过设置android:orientation="horizontal"来设置线性布局的方向改为水平,也可是设置android:orientation="vertical"来设置线性布局的方向改为垂直
       android的线性布局不会换行,当组件一个挨一个的排列到头之后,剩下的组件将不会被显示出来。


表格布局:

      线性布局是由TableLayout类来代表,TableLayout继承了LinearLayout,因此它的本质依然是线性布局管理器。表格布局采用行、列形式来管理UI组件,TableLayout并不需要明确的声明包含多少行多少列,而是通过添加TableRow、其他组件来控制表格的行数和列数。
      每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,TableRow也是容器,因此它可以不断地添加其他组件,每添加一个子组件该表格就增加一列。


帧布局:

      帧布局由FrameLayout代表,FrameLayout直接继承了ViewGroup组件。
      帧布局容器为每个加入其中的组件创建一个空白的区域(称为一帧),每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐。帧布局的效果类似于AWT编程里边的CardLayout,都是把组件一个一个的叠加在一起。与CardLayout的区别在于,CardLayout可以将下面的Card移上来,但FrameLayout则没有提供相应的方法。


相对布局:

       相对布局由RelativeLayout所代表,相对布局容器内子组件的位置总是相对兄弟组件、父容器所决定的,因此这种布局方式被称为相对布局。
       例如:A组建的位置是由B组建的位置所决定的,Android要求先定义B组件,在定义A组件。
为了控制该布局容器中各个子组件的布局分布,RelativeLayout提供了一个内部类:RelativeLayout.layoutParams,该类提供了大量的XML属性来控制RelativeLayout布局管理中的子组件布局分布。
除此之外RelativeLayout.layoutParams还继承了android.view.ViewGroup.MarginLayoutParams,因此RelativeLayout布局容器中每个子组件也可指定android.view.ViewGroup.MarginLayoutParams所支持的各XML属性。
 
绝对布局:

      绝对布局由AbsoluteLayout所代表。绝对布局就像AWT编程中的空布局,android不提供任何布局控制,而是由开发人员自己通过X坐标,Y坐标来控制组件的位置。当使用AbsoluteLayout作为布局容器时,布局容器不再管理子组件的位置、大小,这些都由开发人员自己控制。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值