
Android 开发学习进程0.31 二级列表 ExpandableListView使用相关
发布日期:2021-05-09 00:48:53
浏览次数:17
分类:精选文章
本文共 3546 字,大约阅读时间需要 11 分钟。
二级列表ExpandableListView
Android二级列表有许多实现方式,如两个recyclerview嵌套,如想要简单实用子列表展开收缩的功能使用expandablelistview较为简单。
- activity中的初始化expandablelistview
expandAdapter = new ActLinExamExpandAdapter(this, mlList); expandListView.setAdapter(expandAdapter); expandListView.setDivider(null); expandListView.setGroupIndicator(null);
adapter继承了baseExpandableListView ,其中的内容下面再讲,setDivider方法是设置分割线,设计途中不需要就可以直接设置为空,setGroupIndicator方法设置指示器,也就是展开子列表的标志,默认是一个小三角,也可以直接设置为空,同时布局文件设置了 android:scrollbars="none"
设置滚动条为空。在数据变化后使用 expandAdapter.notifyDataSetChanged();
更改列表数据。
@Override public int getGroupCount() { return beanList == null ? 0 : beanList.size(); } @Override public int getChildrenCount(int groupPosition) { return beanList.get(groupPosition).getShuju() == null ? 0 : beanList.get(groupPosition).getShuju().size(); } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { ViewHoldParent viewHoldParent; if (convertView == null) { convertView = View.inflate(parent.getContext(),R.layout.item_actlinexam_expandlist, null); viewHoldParent = new ViewHoldParent(convertView); convertView.setTag(viewHoldParent); } else { viewHoldParent = (ViewHoldParent) convertView.getTag(); } viewHoldParent.tvMonth.setText(String.valueOf(beanList.get(groupPosition).getM())); return convertView; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { ViewHoldChildren viewHoldChildren; if (convertView == null) { convertView = View.inflate(parent.getContext(),R.layout.item_actlinexam_expandchild, null); viewHoldChildren = new ViewHoldChildren(convertView); convertView.setTag(viewHoldChildren); } else { viewHoldChildren = (ViewHoldChildren) convertView.getTag(); } return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } public static class ViewHoldParent { private final TextView tvMonth, tvYear; public ViewHoldParent(View itemView) { tvYear = itemView.findViewById(R.id.tv_item_actlinexam_expand_year); } } public static class ViewHoldChildren { private final TextView tvTitle, tvLaber; public ViewHoldChildren(View itemView) { tvTitle = itemView.findViewById(R.id.tv_actlinexam_expandchild_title); } }
- 其他问题自定义控件监听事件点击展开收缩方法有
if (expandListView.isGroupExpanded(position)) { expandListView.collapseGroup(position); } else { expandListView.expandGroup(position); }
子项点击问题,子项的某一控件可能会与父布局争夺焦点使得点击失效 ,此时可以使用 android:descendantFocusability="blocksDescendants"
方法在子布局的根布局下。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年05月01日 14时01分39秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
10款最佳免费WiFi黑客工具(附传送门)零基础入门到精通,收藏这一篇就够了
2025-03-29
15个备受欢迎的嵌入式GUI库,从零基础到精通,收藏这篇就够了!
2025-03-29
15个程序员常逛的宝藏网站!!从零基础到精通,收藏这篇就够了!
2025-03-29
2024大模型行业应用十大典范案例集(非常详细)零基础入门到精通,收藏这一篇就够了
2025-03-29
2024年全球顶尖杀毒软件,从零基础到精通,收藏这篇就够了!
2025-03-29
2024年最流行的十大开源渗透测试工具
2025-03-29
2024年非科班的人合适转行做程序员吗?
2025-03-29
2024数字安全创新性案例报告,从零基础到精通,收藏这篇就够了!
2025-03-29
2024最火专业解读:信息安全(非常详细)零基础入门到精通,收藏这一篇就够了
2025-03-29
2025版最新C++快速入门(适合小白)零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新关于HW护网行动的一些知识,零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新大模型开发流程(非常详细)零基础入门到精通,收藏这一篇就够了
2025-03-30
2025版最新大模型微调方法(非常详细)零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新小白学习大模型:什么是大模型?零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新常用黑客工具之【Nmap 教程基础】零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新渗透测试和黑客工具列表,零基础入门到精通,收藏这一篇就够了
2025-03-30