三个grid的例子。
从类的继承关系可以看到,gridview和listview、gallery、spinner一样,都是AdapterView的子类,用一个adapter来定义view内的项。
gridview是网格,默认会根据item的大小自动计算列宽。也可以自定义列宽或者列数。
- Icon Grid:查找所有的Launcher中的应用程序图标,使用gridview显示
- Photo Grid:显示一系列图片
- Selection Mode:
将这个例子和IconGrid做对比。可以看到:item可以多选,顶部显示选择的item的个数。被选择的item背景变成蓝色。
1. setChoiceMode:
这个函数是从AbsListView继承而来,即listview和gridview都可以做这个操作,表示设置选择的模式,本例设为多选
CHOICE_MODE_NONE:默认
CHOICE_MODE_SIGNAL:单选
CHOICE_MODE_MULTIPLE:多选
2. setMultiChoiceModeListener:
这个函数是从AbsListView继承而来,即listview和gridview都可以做这个操作。用来处理Selection Mode的选择。当setChoiceMode为multiple时需要这个函数。表示多选后的监听器,即回调函数。
监听器中,当item被选择、或者取消选择时,显示被选择的item的个数。
3.自定义类CheckableLayout implements Checkable:
这个类是为了使被选择的item的背景变成蓝色。
4. adapter的getView:
每个item的显示都要调用getView。可看到,每个item显示的图标都被添加在CheckableLayout的实例中。这样的话,每个item背后都有一个CheckableLayout。这样可以实现选择item,背景变成蓝色。