GridLayout案例
GridLayout-网格布局案例
1.网格布局-GridLayout
1.简介
- 无限细的线绘制的分割区域成行成列,和棋盘的样子差不多
2.注意点
- 自己设置行数和列数
- 自己控件在几行几列
- 自己定义跨越的行数和列数
- 自己设置子布局的排列的样式
3.常见属性
4.网格布局属性
- android:columnCount:设置布局管理器的列数,控件会自动换行进行排列;
- android:rowCount:设置布局管理器的行数
- android:layout_row:设置控件所在的行
- android:layout_column:设置控件所在的列
- android:layout_rowSpan:跨越的行数
- android:layout_columnSpan:跨越的列数
- layout_gravity=“fill”:该控件填满所跨越的整行或整列
- layout_gravity=“fill_horizontal”:该控件填满所跨越的整行
2.计算器案例
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".GridLayoutTest">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="计算器-网格布局"
android:textSize="30dp"
/>
<GridLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ece7e7"
android:useDefaultMargins="false"
>
<!-- 第一行:显示结果-->
<TextView
android:layout_row="0"
android:layout_columnSpan="4"
android:layout_rowWeight="3"
android:layout_columnWeight="1"
android:gravity="bottom|right"
android:text="0"
android:textSize="15dp"
/>
<!-- 第二行-->
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="1"
android:layout_column="0"
android:text="AC"
android:gravity="center"
android:background="@color/white"
android:textColor="#f68904"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_margin="1dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="1"
android:layout_column="1"
android:text="退格"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="1"
android:layout_column="2"
android:text="/"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="1"
android:layout_column="3"
android:text="*"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<!-- 第三行-->
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="2"
android:layout_column="0"
android:text="7"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="2"
android:layout_column="1"
android:text="8"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="2"
android:layout_column="2"
android:text="9"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="2"
android:layout_column="3"
android:text="-"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<!-- 第四行-->
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="3"
android:layout_column="0"
android:text="4"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="3"
android:layout_column="1"
android:text="5"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="3"
android:layout_column="2"
android:text="6"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="3"
android:layout_column="3"
android:text="+"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<!-- 第五行-->
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="4"
android:layout_column="0"
android:text="1"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="4"
android:layout_column="1"
android:text="2"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="4"
android:layout_column="2"
android:text="3"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="4"
android:layout_rowSpan="2"
android:text="="
android:textColor="#f68904"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<!-- 第六行-->
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="5"
android:layout_column="0"
android:text="%"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="5"
android:layout_column="1"
android:text="0"
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
<TextView
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="5"
android:layout_column="2"
android:text="."
android:gravity="center"
android:background="@color/white"
android:textSize="15dp"
android:layout_margin="1dp"
/>
</GridLayout>
</LinearLayout>
改进版:带简易计算
//网格布局
public class GridLayoutTest extends AppCompatActivity {
TextView _11,_12,_13,_14,
_21,_22,_23,_24,
_44,result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid_layout_test);
initView();
}
public void initView(){
_11=findViewById(R.id._11);
_12=findViewById(R.id._12);
_13=findViewById(R.id._13);
_14=findViewById(R.id._14);
_21=findViewById(R.id._21);
_22=findViewById(R.id._22);
_23=findViewById(R.id._23);
_24=findViewById(R.id._24);
_44=findViewById(R.id._44);
result=findViewById(R.id.result);
_14.setClickable(true);
_21.setClickable(true);
_22.setClickable(true);
_44.setClickable(true);
_21.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
result.setText("7");
}
});
_22.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
result.setText(result.getText()+"8");
}
});
_14.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
result.setText(result.getText()+"*");
}
});
_44.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
result.setText((7*8)+"");
}
});
}
}