美文网首页
二级列表

二级列表

作者: 魔女小姐的猫 | 来源:发表于2020-03-18 12:11 被阅读0次

二级列表(ExpandableListView)

  1. 概念:

A view that shows items in a vertically scrolling two-level list. This differs from the ListView by allowing two levels: groups which can individually be expanded to show its children. The items come from the ExpandableListAdapter associated with this view.

一种用于垂直滚动展示二级列表的视图,组可以单独展开。这些选项的数据通过ExpandableListView关联。
  1. 使用场景:


    QQ.png
  2. 属性:

divider 设置父选项之间的分割线样式
childDivider 设置子选项之间的分割线样式
divider 设置分割线的高度
groupIndicator 父项前的图标
childIndicator 子项前的图标

  1. 步骤:
  1. 创建布局并找id
  2. 获取数据(死数据,网络数据)
  3. 创建视图(Group,item)
  4. 创建适配器(继承BaseExpandableListAdapter)
  5. 给二级列表绑定适配器

5.适配器(BaseExpandableListAdapter)

     //父项的个数
    @Override
    public int getGroupCount() {
        return list.size();
    }

     //某个子项的个数
    @Override
    public int getChildrenCount(int groupPosition) {
        return list.get(groupPosition).getChildren().size();
    }

    //获取某个父项
    @Override
    public Object getGroup(int groupPosition) {
        return list.get(groupPosition);
    }

    //获取某个子项
    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return list.get(groupPosition).getChildren().get(childPosition);
    }

    //父项的id
    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    //子项的id 
    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }


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

    //获取父项的view
    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        convertView = LayoutInflater.from(context).inflate(R.layout.layout_group, null);
        ViewHolder holder = new ViewHolder(convertView);
        holder.tv_group.setText(list.get(groupPosition).getName());
        return convertView;
    }

    //获取子项的view
    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        convertView = LayoutInflater.from(context).inflate(R.layout.layout_group, null);
        ViewHolder holder = new ViewHolder(convertView);
        holder.tv_group.setText(list.get(groupPosition).getChildren().get(childPosition).getName());
        return convertView;
    }

    //子项是否可选中
    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }
  1. 监听事件 :适配器的isChildSelectable()方法必须返回true

setOnChildClickListener() 单击子选项
setOnGroupClickListener() 单击组选项
setOnGroupCollapseListener() 分组合并(关)
setOnGroupExpandListener() 分组合并(开)

相关文章

  • markdown的入门

    一级标题 二级 列表 无序列表二级列表 有序列表 有序列表 引用 斜体,粗体hello world 表格

  • 2018-11-22

    Markdown语法 列表样式 无序列表样式 二级列表 一级列表“-”后面加空格 二级列表“-”前面加空格 有序列...

  • 练习

    #这是第一级标题 ##这是二级标题 *列表1 *列表2 **二级列表 *斜体* **粗体**

  • typora使用

    # 一级标题 ##二级标题 -空格 列表 tab 二级列表 tab+shift列表返回上一级

  • 2018.7.20 Markdown常用语法

    代表一级标题 代表二级标题 三级标题 四级标题 五级标题 六级标题 无序列表 无序列表二级二级 无序列表 无序列表...

  • markdown

    #标题和-列表 一级标题,##二级标题,,#最多至六级标题,#后跟空格 无序列表 “-”加空格 二级列表 有序列表...

  • 2018-11-01

    这是标题 这是二级标题 这是引用这是二级引用 这是加粗这是斜体这是加粗斜体这是删除线 列表1 列表2 列表3 列表...

  • mardown测试

    一级标题 二级标题 列表 列表 有序列表 有序列表

  • android可扩展列表-ExpandableListView

    简介 ExpandableListView可扩展列表,或者称其为二级列表,它能够完美的实现二级列表的显示和隐藏官网...

  • 简书Markdown基本语法

    标题 一级标题 #一级标题二级标题 ##二级标题 无序列表 无序列表 * 无序列表 或者 - 无序列表无序列...

网友评论

      本文标题:二级列表

      本文链接:https://www.haomeiwen.com/subject/lcdqyhtx.html