zoukankan      html  css  js  c++  java
  • android原生ExpandableListView

    android原生可扩展ExpandableListView就是可以伸缩的listView,一条标题下面有多条内容。

     这个list的adapter对的数据要求与普通ListView的数据要求也有一些差别,这个list需要有两个数据源

    一半需要 List<String> groups 作为group 和一个 Map<String , List<String>> children 作为children,他们最好意义对应

    ExpandableListView使用起来和普通的listView方式差不多,不过ExpandableListView的适配器需要继承的父类是

    BaseExpandableListAdapter,实现其中的各个方法。

    下面说一说需要重写的方法的意

    1.public Object getChild(int groupPosition, int childPosition) 返回当前group下的当前子内容对象。

     2. long getChildId(int groupPosition, int childPosition)  返回当前group下的当前子内容的id。

     3.public View getChildView(final int groupPosition,final int childPosition, boolean isLastChild, View convertView,

    ViewGroup parent) 这个方法才是最重要的,类似于BaseAdapter的getView方法。在这里主要完成对内容条目的编码。

     4.public int getChildrenCount(int groupPosition) 返回当前group下面有多少条内容。

     5.public Object getGroup(int groupPosition) 返回当前group对象

     6.public int getGroupCount() 返回一共有多少个group

     7.public long getGroupId(int groupPosition) 返回当前group的ID

     8.public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) 这个方法主要对group进行编码,需要什么样的group就在这里编码即可。 isExpanded 返回当前group是打开还是关闭的状态

     9.public boolean isChildSelectable(int groupPosition, int childPosition) 返回true 每一条的字内容可点击,否则相反。

     10.public boolean hasStableIds() 这个还不止有什么用途,一半返回true。

    自定义group的指示器 

    listView.setGroupIndicator(getResources().getDrawable(R.drawable.ic_launcher)); 

    也可以让其隐藏在getGroupView中编码

    源码下载Download

    这个demo是继承自定义的ExpandSlideListView还用于下面一遍可以滑动内容的文章,两个文章用的是同一个源码。本人水平有限,见谅。

  • 相关阅读:
    基于方便使用的所见即所得架构方式
    linux操作笔记
    TreeView获取目录下的所有文件
    treeList获取目录下的所有文件
    简单字符串处理 hdu2532 Engine
    简单字符串处理
    Luogu P1648 看守
    【深入理解Linux内核架构】第3章:内存管理
    【深入理解Linux内核架构】6.6 资源分配
    题解 P1888 【三角函数】
  • 原文地址:https://www.cnblogs.com/pigface/p/4783749.html
Copyright © 2011-2022 走看看