Android网格视图示例
Android网格视图是许多应用程序中最常用的布局之一。本教程通过示例说明栅格视图布局。
GridView
gridview是android中的一种布局,它允许我们在二维可滚动网格中排列组件。GirdView中的组件不一定是静态的,它可以存储在ListAdapter中(适配器就像数据和UI组件之间的桥梁)。
在日历视图和其他网格应用程序中很常见。
网格视图属性
以下是Android网格视图布局的一些XML属性。
android:gravity,表示中心、底部、顶部、左侧等每个单元格的重力。
android:columnWidth,用于指定每个单元格的列宽度。
android:horizontalSpacing,指定网格列之间的水平间距。
android:verticalSpacing,用于指定网格行之间的垂直间距。
android:numColumns,指定要显示的列数。
网格视图方法
网格视图有许多方法可以使用,这里将对其中一些方法进行解释
getAccessibilityClassName():返回object的类名。
getAdapter():返回与之关联的适配器。
getColumnWidth():返回网格上某列的宽度。
getGravity():返回网格组件的重力,即它们水平对齐的方式。
getHorizontalSpacing():返回网格组件之间的水平间距。
getNumColumns():获取网格中的列数。
setAdapter(ListAdapter):用于设置网格视图后面的数据。
setColumnWidth(int columnWidth):用于设置列宽。
setGravity(int-gravity):用于设置网格组件的重力。
setHorizontalSpacing(int horizontalSpacing):用于设置水平间距,将项目放入网格中。
setVerticalSpacing(int verticalSpacing):用于设置垂直间距,将项目放置在网格上。
网格视图构造函数
网格视图有四个不同的公共构造函数,定义如下
- GridView( Content context)
- GridView( Content context, AttributeSet attrs)
- GridView( Content context, AttributeSet attrs, int defStyleAttr)
- GridView( Content context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
网格视图示例
这个例子展示了如何在Android中使用GridView布局。如前所述,GridView可以直接使用,也可以与自定义适配器一起使用。这个例子显示了小型和大写英文字母的网格。
打开androidstudio并开始创建一个新项目。在主代码中粘贴并创建以下活动_活动.xml.
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridView1" android:numColumns="auto_fit" android:gravity="center" android:columnWidth="80dp" android:stretchMode="columnWidth" android:layout_width="fill_parent" android:layout_height="fill_parent" > </GridView>
打开主活动.java然后粘贴这个代码
package com.example.admin.gridviewexample; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.GridView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { GridView gridView; static final String[] numbers = new String[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "\n","\n","\n","\n", "a", "b","c","d","e", "f","g","h","i","j", "k","l","m","n","o", "p","q","r","s","t", "u","v","w","x","y", "z"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gridView = (GridView) findViewById(R.id.gridView1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, numbers); gridView.setAdapter(adapter); gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(getApplicationContext(), ((TextView) v).getText(), Toast.LENGTH_SHORT).show(); } }); } }