布局之六GridLayout,Space

转载 2015年07月10日 13:42:09
Android 4.0的SDK已经发布,在众多的新增特性中,其中对开发者来说比较重要的特性之一,是新增的两种界面布局方式:Space和Gridlayout,它们跟以往Android版本的sdk有什么不同之处?它们能给Android的布局设计带来什么好处?本文将带大家一探android 4.0新增的space及gridlayout布局的相关特性。

  概述

  在Android中,使用的最多的布局是LinearLayout了,它可以让布局界面中的子控件以常见的方式比如水平或者垂直方向对齐。在使用LinearLayout时,开发者应该会记得,会经常遇到复杂的布局结构,所以会时常使用各种LinearLayout进行嵌套,而且应该注意嵌套层次不要过多。GridLayout布局样式和LinearLayout样式一样,可以有水平和垂直两个方向的布局方式。即如果设置为垂直方向布局,则下一个单元格将会在下一行的同一位置或靠右一点的位置出现,而水平方向的布局,则意味着下一个单元格将会在当前单元格的右边出现,也有可能会跨越下一行

  有很多不错的文章(比如有:Android Layout Tricks #1, Flattening The Stack)小结了嵌套布局的缺点,归纳有如下三类:

  · 不能同时在X,Y轴方向上进行控件的对齐。

  · 当多层布局嵌套时会有性能问题。

  · 不能稳定地支持一些支持自由编辑布局的工具。

  如下图,可以看出上述说的第一个缺点:


Android <wbr>4.0新增Space及GridLayout初谈



  这里,当Email address这个标签的文本发生变化时,既要保持跟其右边控件的下部的基线对齐,又要保持跟下面的控件的右边缘对齐,而用嵌套布局的方式是不能实现的,因为不能够同时在X,Y轴上进行控件的对齐。于是我们便需要引入新的布局方式GridLayout。

  GridLayout布局

  在Android 4.0中,新引入的GridLayout网格布局,就是为了解决上述的问题而新出现的,它把布局以行和列进行分割,如下图:

Android <wbr>4.0新增Space及GridLayout初谈


  可以看到,在这种布局界面中,Email address这个文本标签既属于一个在基线底部对齐的行,也属于一个靠右对齐的列。.

  GridLayout布局使用虚细线将布局划分为行,列和单元格,如上图,也支持一个控件在行,列上都有交错排列。而GridLayout使用的其实是跟LinearLayout类似的API,只不过是修改了一下相关的标签而已,所以对于开发者来说,掌握GridLayout还是很容易的事情。

  在Android 4.0的SDK中,给出了相关的例子,代码位置在:

  samples/ApiDemos/src/com/example/android/apis/view/GridLayout0.java

  samples/ApiDemos/res/layout/grid_layout_1.xml

  下面是一个上图布局的XML例子,代码如下:

?xml version="1.0" encoding="utf-8"?>
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:useDefaultMargins="true"
        android:alignmentMode="alignBounds"
        android:columnOrderPreserved="false"
        android:columnCount="4"
        >
                android:text="Email setup"
            android:textSize="32dip"
            android:layout_columnSpan="4"
            android:layout_gravity="center_horizontal"
            />
                android:text="You can configure email in just a few steps:"
            android:textSize="16dip"
            android:layout_columnSpan="4"
            android:layout_gravity="left"
            />
                android:text="Email address:"
            android:layout_gravity="right"
            />
                android:ems="10"
            />
                android:text="Password:"
       

Android中的4.0新布局控件:Space和GridLayout

Android4.0 Ice Cream Sandwich (ICS) 提供了两种新的控件,也就是Space和GridLayout,是专门为大屏幕设备提供更丰富的用户交互体验而设计。 在这之前,...

【Android】六大布局——LinearLayout、RelativeLayout、TableLayout、AbsoluteLayout、FrameLayout、GridLayout

Android中有四大组件六大布局,他们分别是: LinearLayout(线性布局) RelativeLayout(相对布局) TableLayout(表格布局) AbsoluteLayou...

GridLayout 布局管理详细解析

  • 2012年03月31日 10:27
  • 283KB
  • 下载

Android:New Layout Widgets: Space and GridLayout

10 November 2011 http://android-developers.blogspot.com/2011/11/new-layout-widgets-space-and-gridla...

Android 4.0新增Space及GridLayout初谈

【IT168技术】Android 4.0的SDK已经发布,在众多的新增特性中,其中对开发者来说比较重要的特性之一,是新增的两种界面布局方式:Space和Gridlayout,它们跟以往Android版...

Android中的GridLayout布局及Shap,Selector文件的使用

关于GridLayout,它是一个网格布局,Android五大布局有一个TableLayout(表格布局),显然Android中许多布局和控件存在复杂的继承关系,我认为没必要区分它们的区别和来源,只要...

网格布局GridLayout的那些事儿

(一)概述 GridLayout是在Android 4.0以后引入的一个新的布局,和TableLayout(表格布局)有点类似,不过它比后者更加强大,也更加好用; ...

GridLayout(网格布局)

前言: 作为android 4.0 后新增的一个布局,与前面介绍过的TableLayout(表格布局)其实有点大同小异; 不过新增了一些东东 ①跟LinearLayout(线性布局)一样,他可以...

GridLayout网格布局

GridLayout 类          是一个布局处理器,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件。 GridLayout();  --------生...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:布局之六GridLayout,Space
举报原因:
原因补充:

(最多只允许输入30个字)