Android之可收缩展开列表ExpandableList

在Android的app包中,有这么一个类,这个类继承自Activity,它叫ExpandableListActivity。顾名思义,从它的名字可以看出该类是一种可扩展性的列表List,我们这里理解成可伸缩的列表,也就是通过继承ExpandableListActivity 可以实现列表的可展开/收缩的功能。

本文我们主要介绍这种列表的显示是如何实现的,在ListActivity的使用中,我们知道一旦继承了ListActivity,该类就意味这具备了List的功能,同样的,我们将一个类继承了ExpandableListActivity,就可以直接调用该类本身的ExpandableList对象,并直接赋予一个自定义的适配器setListAdapter(adapter);,因此,整个实现的重心放在如何设计这个适配器上面,以下是适配器的一个举例。

public class mExpandableListAdapter extends BaseExpandableListAdapter {
// 父列表数据
private String[] groups =
{
“随时随地”,
“即兴时代”,
“ATAAW.COM”,
};
// 子列表数据
private String[][] children =
{
{ “即兴” },
{ “随时随地”, “即兴时代” },
{ “随时随地”, “即兴时代”, “ATAAW.COM” },
};
@Override
public Object getChild(int groupPosition, int childPosition) {
return children[groupPosition][childPosition];
}

@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}

@Override
public int getChildrenCount(int groupPosition) {
return children[groupPosition].length;
}

// 取子列表中的某一项的 View
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
TextView textView = getGenericView();
textView.setText(getChild(groupPosition, childPosition).toString());
return textView;
}

@Override
public Object getGroup(int groupPosition) {
return groups[groupPosition];
}

@Override
public int getGroupCount() {
return groups.length;
}

@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}

//父列表中的某一项的View
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
TextView textView = getGenericView();
textView.setText(getGroup(groupPosition).toString());
return textView;
}

@Override
public boolean hasStableIds() {
return true;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
//获取某一项的View
private TextView getGenericView() {
TextView textView = new TextView(_ExpandableList.this);
return textView;
}
}

可以看出,在实现可伸缩列表上,我们需要集中精神把重头戏放在这个适配器上面。文章地址




凤凰涅槃/浴火重生/马不停蹄/只争朝夕
隐姓埋名/低调华丽/简单生活/完美人生

更多相关文章

  1. Android(安卓)Adapter适配器模板(笔记)
  2. 工作总结|Android(安卓)自定义列表刷新控件
  3. 笔记 Spinner类(下拉列表框):
  4. Android(安卓)短信列表的时间显示
  5. Android实现在列表List中显示半透明小窗体效果的控件用法详解
  6. 面向开发者的最佳 Android(安卓)库列表
  7. Android(安卓)ListFragment
  8. Android使用SharedPreferences保存List列表数据
  9. Android(安卓)ListView item中有按钮(Button)不能点击或者条目不

随机推荐

  1. 01-Vue_常用指令
  2. LVS+KeepAlived+Nginx高可用实现方案
  3. LVS管理工具--ipvsadm
  4. 【Vue框架学习】过滤器、自定义指令、生
  5. Docker从入门到掉坑(三):容器太多,操作好麻
  6. MySQL高可用之mysql+keepalived
  7. Docker从入门到掉坑(二):基于Docker构建Sp
  8. 来探讨一下最近面试问的ThreadLocal问题
  9. Docker 从入门到掉坑
  10. 数据的异构实战(二)手写迷你版同步工程