之前有个项目有类似这样的界面

ui.png
于是呢,就~
I have a ExpandableListView
I have a GridView
en~a!
ExpandableGridView

expandable_gridview.gif
忘记把鼠标录进来,点击事件和傻逼一样。。。
下面是分割线
上面是分割线
github.com/Linyuzai/De…com.linyuzai expandablegridview 1.2.0 pom ------------------------------------------------ compile 'com.linyuzai:expandablegridview:1.2.0'下面又是分割线
上面,对,我真的很无聊
然后是布局
horizontal_spacing和vertical_spacing是GridView的属性,然后overwrite_measure,比如在外面套了一个ScrollView就不用自己重写了。如果group_clickable设为了false,发现ChildView不显示,点击也没用,调用一下ExpandableGridView.expandAll();接下来是Adapter~
public ExpandableGridAdapter getExpandableGridAdapter();
public void setExpandableGridAdapter(ExpandableGridAdapter adapter);
class MyAdapter1 extends ExpandableGridAdapter {
@Override
public int getGridGroupCount() {
return 0;
}
@Override
public int getGridChildCount(int gridGroupPosition) {
return 0;
}
@Override
public View getGridGroupView(int gridGroupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
return null;
}
@Override
public View getGridChildView(int gridGroupPosition, int gridChildPosition, View convertView, ViewGroup parent) {
return null;
}
@Override
public int getNumColumns(int gridGroupPosition) {
return 0;
}
}
class MyAdapter2 extends SimpleExpandableGridAdapter {
public MyAdapter(List> dataList) {
super(dataList);
}
@Override
public View getGridGroupView(int gridGroupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
return convertView;
}
@Override
public View getGridChildView(int gridGroupPosition, int gridChildPosition, View convertView, ViewGroup parent) {
return convertView;
}
@Override
public int getNumColumns(int gridGroupPosition) {
return 0;
}
}
最后还有一个
public void setOnGridItemClickListener(OnGridItemClickListener listener);
哦,ViewHolder还是得自己写。然后应该没有漏下什么了,恩(思考脸)