最近因為項目需求,要添加一種可擴充ListView,來展示頁面,自己也是第一次用 網上看了很多 竟然有原生的,但是有點醜,我就分享一下我自己的做法。
ExpandableListView
是原生的,相信很多人也是用過
1.傳統的ListView都是使用到擴充卡 ,這裡ExpandableListView也是用到擴充卡,但是這裡自定義的擴充卡要繼承 BaseExpandableListAdapter。
重寫幾個方法:
@Override
public int getGroupCount() {
return parentList.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return childList.size();
}
@Override
public Object getGroup(int groupPosition) {
return parentList.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return childList.get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
其實沒什麼不一樣 就是等于說 2個GetView的方法,來引入父布局和子布局
剩下就是監聽事件了