之前有個(gè)項(xiàng)目有類似這樣的界面
ui.png
于是呢,就~
I have a ExpandableListView
I have a GridView
en~a!
ExpandableGridView
expandable_gridview.gif
忘記把鼠標(biāo)錄進(jìn)來,點(diǎn)擊事件和傻逼一樣。。。
下面是分割線
<dependency>
<groupId>com.linyuzai</groupId>
<artifactId>expandablegridview</artifactId>
<version>1.2.0</version>
<type>pom</type>
</dependency>
------------------------------------------------
compile 'com.linyuzai:expandablegridview:1.2.0'
下面又是分割線
上面,對(duì),我真的很無聊
然后是布局
<com.linyuzai.expandablegridview.ExpandableGridView
xmlns:grid="http://schemas.android.com/apk/res-auto"
android:id="@+id/egv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
grid:group_clickable="true"
grid:horizontal_spacing="10dp"
grid:overwrite_measure="true"
grid:vertical_spacing="10dp" />
horizontal_spacing和vertical_spacing是GridView的屬性,然后overwrite_measure,比如在外面套了一個(gè)ScrollView就不用自己重寫了。如果group_clickable設(shè)為了false,發(fā)現(xiàn)ChildView不顯示,點(diǎn)擊也沒用,調(diào)用一下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<String> {
public MyAdapter(List<List<String>> 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;
}
}
最后還有一個(gè)
public void setOnGridItemClickListener(OnGridItemClickListener listener);
哦,ViewHolder還是得自己寫。然后應(yīng)該沒有漏下什么了,恩(思考臉)