今天來研究下ExpandableListView這個組件,首先來了解下這是神馬
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
></ExpandableListView>
android:id="@+id/group_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/child_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
list.setAdapter(adapter);
String[] Father= new String[]{"父1","小說","遊戲"};
String[][] son= new String[][]{{"子1","子2"},{"鬥破蒼穹","武動乾坤"},{"LOL","DNF"}};
public boolean isChildSelectable(int groupPosition, int childPosition) {
// 是否選中指定位置上的子元素
return true;
}
@Override
public boolean hasStableIds() {
// 組和子元素是否持有穩定的ID,也就是底層數據的改變不會影響到它們。
return true;
}
//決定每個組選項外觀
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
TextView group_text = (TextView) convertView.findViewById(R.id.group_text);
group_text.setText(getGroup(groupPosition).toString());
return convertView;
}
//組的position
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
//組的數量
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return father.length;
}
//獲得某一個組
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return father[groupPosition];
}
//子的數量
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return son[groupPosition].length;
}
//每個子選項外觀
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
View convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_list_child, null);
ImageView image = (ImageView) convertView.findViewById(R.id.image);
TextView child_text = (TextView) convertView.findViewById(R.id.child_text);
image.setBackgroundResource(image[childPosition]);
child_text.setText(getChild(groupPosition, childPosition).toString());
return convertView;
}
//子的position
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
//獲取指定子的數據
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return son[groupPosition][childPosition];
}
};