第3.1.3节 排布视图

来源:互联网 发布:劲舞团淘宝卖家 编辑:程序博客网 时间:2024/06/05 20:18
Android的排布视图是UI很重要的一部分,相当于我们拿到一张白纸怎么样规划才是最合适,规划完我们才能在其上做画,尺寸才是最合适的,画家拿到画布用尺子测量获取画布的尺寸,做出最合理的规划,这事一个画家最基本的常识,所以经常作画的人叫做画家。这里说Android  UI设计,我们不做用笔画了,用程序代码,有时候觉得这是不是一种倒退,嗨!这没法说,应该是进步吧,至少我们敲代码都能出画,而且别人仿造也能仿的一模一样,快速的复制。

      来吧,开始做画了,既然不用笔自然要用一些特殊的手段——容器。我们的画纸的尺寸,parent,parent;规划的格式:

(1)FrameLayout

        最简单的布局容器是FrameLayout。这个容器完全不安排子视图的排列。只是简单呈现每一个视图,从上到下摆下来。视图的顺序与排列都是我们在XML文件中做的声明。重点:任何时候当你想创建重叠视图时都可以使用这个布局。

       当你创建自定义的可点击的元素时FrameLayout尤其适用。你可以使用FrameLayout来配对一个有ImageView的按钮,设置按钮背景为透明。这给你更多的对于按钮图像的填充和缩放的控制,而不仅仅是是设置一个背景。

(2)TableLayout

         

             tableLayout展示表格的格式的数据如图。它把子视图放置成行和列,每一行都包含在一个TableRow容器中。一个TableLayout将会和最多单元的TableRow一样多列。与大多数视图的子视图不同,TableLayout的子视图不能指定一个layout_width。这个是由TableLayout处理并为你设置的。单元格可以被标记为跨越多列并可以狂涨或者缩小以填充可用空间。  总之,当你要以表格形式展现数据时,你应该使用这个视图。

(3)LinearLayout

         常用布局容器,Orientation设置子视图的排列方向。可以通过权值来设置比例,使用weight(权值)的时候慎重,毕竟在LinearLayout中加入其它控件的时候都是占据空间的。系统会先分配给那些没有权值的控件。然后剩下的空间在按照权值比例来分,造成了加入一个控件,设置好权值的容器位置就会移动一些。

          

         

           总之,linearLayout是最常用的空间,也是非常好用的。

 

(4)RelativeLayout

       另一个常见的布局容器就是RelativeLayout。RelativeLayout比LinearLayout更加的灵活,但是他们同样更加复杂。顾名思义,文本视图基于子视图相对其它视图的位置以及该文本视图本身来摆放子视图。注意在相对布局中不能有循环依赖的关系。

(5)GridLayout

       与TableLayout不同,一个GridLayout并不需要明确的TableRow元素。按钮们本身就已经声明了他们应该出现的地方。 默认情况下,这个布局将不包括任何按钮之间的空间。若想增加空间可以使用传统的margin和padding参数,或者可以使用Android4:Space里面介绍的新的View。这个视图只是在布局元素之间增加了间距。当在图形化布局编辑器中使用拖拽来创建布局时,会自动插入空间以达到想要的外观。

 

       总之,GridLayout相似于TableLayout却比TalbeLayout灵活。

原创粉丝点击