GridLayout表格布局以 行x列 的形式管理UI组件,
XMLandroid:columnCount="5" //设置列数android:rowCount="5"//设置行数android:layout_columnSpan="4" //横向跨几列 android:layout_rowSpan="4"代码
mGridLayout.setColumnCount(int);//设置列数 mGridLayout.setRowCount(int);//设置行数
package shortcut.song.com.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.widget.Button; import android.widget.GridLayout; public class GridLayoutActivity extends AppCompatActivity { GridLayout mGridLayout; String[] chars = new String[] { "7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", ".", "0", "=", "+" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_grid_layout); mGridLayout = (GridLayout)findViewById(R.id.gridlayout1); for( int i=0; i<chars.length; i++ ) { Button btn = new Button(this); btn.setText(chars[i]); btn.setTextSize(40); btn.setMinWidth(30); btn.setPadding(5, 35, 5, 35); //指定该组件所在的行 GridLayout.Spec rowSpec = GridLayout.spec(i / 4 + 2); //指定该组件所在的列 GridLayout.Spec columnSpec = GridLayout.spec(i % 4); GridLayout.LayoutParams params = new GridLayout.LayoutParams(rowSpec, columnSpec); params.setGravity(Gravity.FILL); mGridLayout.addView(btn, params); } } }
<?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:columnCount="4" android:rowCount="6" android:id="@+id/gridlayout1" > <TextView android:id="@+id/val_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_columnSpan="4" android:layout_marginLeft="2pt" android:layout_marginRight="2pt" android:layout_gravity="right" android:padding="3pt" android:text="0" /> <Button android:id="@+id/clear_btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_columnSpan="4" android:text="Clear" /> </GridLayout>