1. 使用流程
graph LR
准备数据源-->新建适配器
新建适配器-->绑定数据源
绑定数据源-->加载适配器
2. 常用属性
android:columnWidth:每一列的宽度。
android:numColumns:指定显示的列数,若不指定该属性,则默认所有项排成1列。如果想让列数根据屏幕大小自适应,满了就自动换行,可以设置为"auto_fit"。
android:verticalSpacing:行距。
android:horizontalSpacing:列距,若指定了numColumns,则按照numColumns均分宽度排列。
android:stretchMode:当我们指定了GridView的列宽和列距时,两者加起来可能小于实际屏幕大小,stretchMode就是指定剩余宽度的填充模式。常用参数为columnWidth、spacingWidth。若选择columnWidth,那么剩余宽度会均分给元素的列宽,而不会改变列距;如果选择spacingWidth,则不改变元素大小,而是将空白处均分到列距中。
假设一个GridView列宽为100dp,列距为10dp:
如果stretchMode设置为columnWidth:
如果为spacingWidth:
3. 事件监听
onItemClick(Adpater parent, View view, int position, long id)
parent:官方解释为:The AdapterView where the click happened,也就是用户所点击的AdapterView,这个参数一般不用。
view:当前点击的列表项所对应的布局View对象,可通过这个参数获得相应的列表项内部的组件,进而对其进行操作。举个例子,假设有一个ListView,含有4个列表项,你点了第2个,那么通过view你就可以操作第2个列表项里面的TextView、ImageView等等的组件(假设存在)。
position:当前点击的列表项的位置,从0开始,也就是点击第n个,position就是n-1。
id:当前点击的列表项的序号,也是从0开始,绝大部分时候position和id是一样的。
4. 范例
public class GridViewActivity extends Activity implements AdapterView.OnItemClickListener{
private GridView gridView;
private List