Android学习之GridLayout
来源:互联网 发布:苏州德威国际学校 知乎 编辑:程序博客网 时间:2024/06/05 13:30
概述
一个将子view置于矩形网格的布局
网格有一组无限细线组成,将可视区域分为单元格。
子view占据一个或者多个连续的单元格,它们由rowSpec和columnSpec布局参数定义。
虽然单元格在GridLayout中通常不会重叠,但是GridLayout并不会阻止被定义的子元素占用相同的单元格或单元格组,所以在这种操作下,子view很可能重叠。
如果一个子View没有指定希望占据的单元格行和列,GridLayout会自动分配:使用的属性:
orientation,rowCount,columnCount
空间
子view之间的空间可以由使用专用的实例来指定Space视图或者通过设置LeftMargin,topMargin,rightMargin和bottomMargin。当设置useDefaultMargins属性的时候,将根据平台的主要UI风格自动分配子View周围的默认边距。
XML属性
行和列规范的对齐属性一起指定了单元格组中对齐的两个方面。也可以通过使用该setGravity(int) 方法在其单元组中指定子对齐。
重量属性也包含在Spec中,并指定了由于关联视图而导致的任何多余空间的比例。
android:alignmentMode:
取值:
alignBounds:对齐子视图边界
alignMargins:对齐子视图边距
android:columnCount: 最大列数
android:rowCount:最大行数
android:columnOrderPreserved:
当设置为true,使列边界显示的顺序和列索引的顺序相同,默认true
android:orientation:
子元素的布局方向
取值:
horizontal:水平
vertical:垂直
android:rowOrderPreserved:
当设置为true,使行边界显示的顺序和列索引的顺序相同,默认true
android:useDefaultMargins:
当设置为true,而且没有指定视图的布局参数的时候,告诉GirdLayout使用默认的边距。默认值是false
这些是GirdLayout布局本身的属性
下面是GridLayout布局中国元素所支持的属性,定义在GridLayout.LayoutParams中
android:layout_column:显示该空间的列
例如,android:layout_column=”0”,表示在第1列显示该控件;android:layout_column=”1”,表示在第2列显示该控件。
android:layout_columnSpan:
该空间所占的列数
例如,android:layout_columnSpan=”2”,表示该控件占2列。如果要不显示空白,需要设置android:layout_gravity属性
android:layout_columnWeight:
设施权重,在空间分配过剩的时候,给视图分配水平空间的相对比例。
android:layout_row和android:layout_rowSpan和android:layout_rowWeight跟上面差不多
android:layout_gravity:
该控件的布局方式。可以取以下值:
top – 控件置于容器顶部,不改变控件的大小。
bottom – 控件置于容器底部,不改变控件的大小。
left – 控件置于容器左边,不改变控件的大小。
right – 控件置于容器右边,不改变控件的大小。
center_vertical – 控件置于容器竖直方向中间,不改变控件的大小。
fill_vertical – 如果需要,则往竖直方向延伸该控件。
center_horizontal – 控件置于容器水平方向中间,不改变控件的大小。
fill_horizontal – 如果需要,则往水平方向延伸该控件。
center – 控件置于容器中间,不改变控件的大小。
fill – 如果需要,则往水平、竖直方向延伸该控件。
clip_vertical – 垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。
clip_horizontal – 水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是 right的,则剪切该控件的左边。
start – 控件置于容器的起始处,不改变控件的大小。
end – 控件置于容器的结束处,不改变控件的大小。
对应函数: setGravity(int)
应用实例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="vivian.com.calculator.MainActivity" android:background="#e5e5e5e5" > <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/biaodashi" android:textSize="24sp" /> </LinearLayout> <GridLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" android:columnCount="4" android:orientation="horizontal" android:rowCount="5" > <Button android:id="@+id/qingchu" android:text="C" android:textSize="20sp" android:textColor="#FFF" android:background="#91919191" android:layout_rowWeight="1" android:layout_margin="2.5dp" /> <Button android:id="@+id/chu" android:text="÷" android:textSize="20sp" android:textColor="#FFF" android:background="#91919191" android:layout_rowWeight="1" android:layout_margin="2.5dp" /> <Button android:id="@+id/cheng" android:text="X" android:textSize="20sp" android:textColor="#FFF" android:background="#91919191" android:layout_rowWeight="1" android:layout_margin="2.5dp" /> <Button android:id="@+id/shanchu" android:text="BACK" android:textSize="20sp" android:textColor="#FFF" android:background="#91919191" android:layout_rowWeight="1" android:layout_margin="2.5dp" /> <Button android:id="@+id/qi" android:text="7" android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/ba" android:text="8" android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/jiu" android:text="9" android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/jia" android:text="+" android:textSize="20sp" android:textColor="#fff" android:background="#91919191" android:layout_rowWeight="1" android:layout_margin="2.5dp" /> <Button android:id="@+id/si" android:text="4" android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/wu" android:text="5" android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/liu" android:text="6" android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/jian" android:text="-" android:textSize="20sp" android:textColor="#fff" android:background="#91919191" android:layout_rowWeight="1" android:layout_margin="2.5dp" /> <Button android:id="@+id/yi" android:text="1" android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/er" android:text="2" android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/san" android:text="3" android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/zuokuohao" android:text="(" android:textSize="20sp" android:textColor="#fff" android:background="#91919191" android:layout_rowWeight="1" android:layout_margin="2.5dp" /> <Button android:id="@+id/ling" android:text="0" android:layout_columnSpan="2" android:layout_rowWeight="1" android:textSize="20sp" android:layout_gravity="fill" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/dian" android:text="." android:textSize="20sp" android:layout_rowWeight="1" android:background="#ebebeb" android:layout_margin="2.5dp" /> <Button android:id="@+id/youkuohao" android:text=")" android:textSize="20sp" android:textColor="#fff" android:background="#91919191" android:layout_rowWeight="1" android:layout_margin="2.5dp" /> <Button android:id="@+id/dengyu" android:text="=" android:textSize="20sp" android:textColor="#fff" android:background="#ee9a00" android:layout_rowWeight="1" android:layout_margin="2.5dp" android:layout_columnSpan="4" android:layout_gravity="fill" /> </GridLayout></LinearLayout>
- android学习之GridLayout
- Android学习之GridLayout
- Android学习路之GridLayout
- Android学习之GridLayout与GridView
- Android GridLayOut布局学习
- Android 布局之GridLayout
- Android 布局之GridLayout
- android 之GridLayout浅谈
- Android布局之GridLayout
- Android用户界面基础之LinearLayout、TableLayout、RelativeLayout、FrameLayout、GridLayout学习
- Android学习笔记十七之GridLayout网格布局
- Android学习笔记十七之GridLayout网格布局
- Android技巧:学习使用GridLayout
- Android技巧:学习使用GridLayout
- android开发之GridLayout详解
- android之网格布局GridLayout
- Android布局文件之GridLayout
- Android布局空间之GridLayout
- Java的内存泄露和内存溢出
- 关于提交页面刷新问题
- SD工具类
- 第2章-创建和销毁对象
- HDU-3591-The trouble of Xiaoqiant
- Android学习之GridLayout
- dijkstra(最短路径)
- Java中的HashMap深入详解
- Dreamweaver 怎么网页布局 div css布局
- A
- Linux 集成环境mvn test 单元测试报错java.lang.OutOfMemoryError: PermGen space
- 整数划分问题(动态规划||母函数)HIT 1402
- Python学习
- 8月20号 XML写入