网格布局:GridLayout
其他三种布局:
网格布局实现计算器界面布局非常简单,实现跨行跨列功能主要用到:
layout_columnSpan属性和layout_rowSpan
如:
android:layout_columnSpan=”3”
android:layout_gravity=”fill”
设置为fill能让控件占满所跨的行或列
界面效果:
outline视图
布局源码:
<?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="match_parent"
android:columnCount="6"
android:orientation="vertical"
android:rowCount="9" >
<!-- n行n列 -->
<Button
android:id="@+id/button1"
android:layout_column="0"
android:layout_gravity="left"
android:layout_row="0"
android:text="1" />
<Button
android:id="@+id/button4"
android:layout_column="0"
android:layout_gravity="right|bottom"
android:layout_row="1"
android:text="4" />
<Button
android:id="@+id/button7"
android:layout_column="0"
android:layout_gravity="left|bottom"
android:layout_row="2"
android:text="7" />
<Button
android:id="@+id/button13"
android:layout_column="0"
android:layout_columnSpan="2"
android:layout_gravity="fill"
android:layout_row="3"
android:text="0" />
<Button
android:id="@+id/button14"
android:layout_column="0"
android:layout_columnSpan="3"
android:layout_gravity="fill"
android:layout_row="4"
android:text="+" />
<Button
android:id="@+id/button2"
android:layout_column="1"
android:layout_gravity="left|bottom"
android:layout_row="0"
android:text="2" />
<Button
android:id="@+id/button5"
android:layout_column="1"
android:layout_gravity="left|bottom"
android:layout_row="1"
android:text="5" />
<Button
android:id="@+id/button8"
android:layout_column="1"
android:layout_gravity="right"
android:layout_row="2"
android:text="8" />
<Button
android:id="@+id/button3"
android:layout_column="2"
android:layout_gravity="left|bottom"
android:layout_row="0"
android:text="3" />
<Button
android:id="@+id/button6"
android:layout_column="2"
android:layout_gravity="left"
android:layout_row="1"
android:text="6" />
<Button
android:id="@+id/button9"
android:layout_column="2"
android:layout_gravity="left"
android:layout_row="2"
android:text="9" />
<Button
android:id="@+id/button17"
android:layout_column="2"
android:layout_gravity="left"
android:layout_row="3"
android:text="." />
<Button
android:id="@+id/button16"
android:layout_column="3"
android:layout_columnSpan="2"
android:layout_gravity="left"
android:layout_row="0"
android:text="/" />
<Button
android:id="@+id/button10"
android:layout_column="3"
android:layout_columnSpan="2"
android:layout_gravity="left"
android:layout_row="1"
android:text="*" />
<Button
android:id="@+id/button11"
android:layout_column="4"
android:layout_gravity="left|bottom"
android:layout_row="2"
android:text="-" />
<Button
android:id="@+id/button12"
android:layout_column="4"
android:layout_gravity="fill"
android:layout_row="3"
android:layout_rowSpan="2"
android:text="=" />
<Space
android:layout_width="1dp"
android:layout_height="32dp"
android:layout_column="0"
android:layout_row="2" />
<Space
android:layout_width="63dp"
android:layout_height="15dp"
android:layout_column="5"
android:layout_row="2" />
<Space
android:layout_width="100dp"
android:layout_height="220dp"
android:layout_row="7" />
<TextView
android:id="@+id/textView1"
android:layout_column="0"
android:layout_columnSpan="5"
android:layout_gravity="fill"
android:layout_row="6"
android:text="0"
android:textAppearance="?android:attr/textAppearanceLarge" />
</GridLayout>