Android ExpandableGridView

1,324 阅读1分钟

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


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还是得自己写。然后应该没有漏下什么了,恩(思考脸)