android:用gridlayout布局一个计算器
一,代码:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="4"
android:orientation="horizontal"
android:layout_centerInParent="true"
android:rowCount="6">
<TextView
android:layout_columnSpan="4"
android:layout_gravity="fill"
android:layout_marginTop="20dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="#FFCCCC"
android:text="0"
android:textSize="50sp" />
<Button
android:layout_row="1"
android:layout_columnWeight="1"
android:layout_column="0"
android:layout_columnSpan="2"
android:text="回退" />
<Button
android:layout_row="1"
android:layout_columnWeight="1"
android:layout_column="2"
android:layout_columnSpan="2"
android:text="清空" />
<Button
android:layout_row="2"
android:layout_columnWeight="1"
android:layout_column="0"
android:text="+" />
<Button
android:layout_row="2"
android:layout_columnWeight="1"
android:layout_column="1"
android:text="1" />
<Button
android:layout_row="2"
android:layout_columnWeight="1"
android:layout_column="2"
android:text="2" />
<Button
android:layout_row="2"
android:layout_columnWeight="1"
android:layout_column="3"
android:text="3" />
<Button
android:layout_row="3"
android:layout_columnWeight="1"
android:layout_column="0"
android:text="-" />
<Button
android:layout_row="3"
android:layout_columnWeight="1"
android:layout_column="1"
android:text="4" />
<Button
android:layout_row="3"
android:layout_columnWeight="1"
android:layout_column="2"
android:text="5" />
<Button
android:layout_row="3"
android:layout_columnWeight="1"
android:layout_column="3"
android:text="6" />
</GridLayout>
说明:
<GridLayout android:layout_width=”match_parent”:网格布局宽度为填满屏幕
<GridLayout android:layout_height=”wrap_content”:网格布局高度为包裹内容
<GridLayout android:columnCount=”4″:网格布局设置 4 列
<GridLayout android:rowCount=”6″:网格布局设置 6 行
<GridLayout android:orientation=”horizontal”:网格布局设置为水平布局
子视图的属性:
android:layout_column=“数字”
表示显示在第几列,如果同时有多个视图设置为同一列,后面的视图将会被显示到下一行同样的列数位置
android:layout_row=“数字”
表示显示在第几行,如果通过 layout_column 与 layout_row 组合使用,将多个设置到通一个位置,则会叠加覆盖
android:layout_columnSpan=“数字” 占用一行几个列位置
android:layout_rowSpan=“数字” 占用一列的几个行位置
android:layout_columnWeight=“数字”
该控件的列权重,与 android:layout_weight 类似,
例如有 GridLayout 上两列,都设置 android:layout_columnWeight = "1",则两列各占 GridLayout 宽度的一半
android:layout_rowWeight=“数字”
跟 layout_columnWeight 同理
二,测试效果:

说明:如果不用layout_columnWeight指定权重时,
则分布宽度不平均,如下图
浙公网安备 33010602011771号