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还用于下面一遍可以滑动内容的文章,两个文章用的是同一个源码。本人水平有限,见谅。

  • 相关阅读:
    springboot 整合 pagehelper
    Linux maven安装
    linux 查看端口状态
    mysql执行顺序
    Java int/int 保留2位小数
    【每日一题】30.储物点的距离 (区间处理,前缀和/线段树//树状数组)
    【每日一题】29.maze (BFS 进阶)
    2016年第七届 蓝桥杯C组 C/C++决赛题解
    2016年第七届 蓝桥杯A组 C/C++决赛题解
    第六届蓝桥杯C++A组 A~F题题解
  • 原文地址:https://www.cnblogs.com/pigface/p/4783749.html
Copyright © 2011-2022 走看看