本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!
在Android里要实现树形菜单,都是用ExpandableList(也有高手自己继承ListView或者LinearLayout来做),但是ExpandableList一般只能实现2级树形菜单......本文也依然使用ExpandableList,但是要实现的是3级树形菜单。本文程序运行效果图:
当用BaseExpandableListAdapter来实现二级树形菜单时,父项(getGroupView())和子项(getChildView())都是使用TextView。当要实现三级树形菜单时,子项(getChildView())就必须使用ExpandableList了.......另外还要定义结构体来方便调用三级树形的数据,二级树形菜单可以用如下:
三级树形菜单可以用如下,子项是二级树形菜单的结构体:
实现三级树形菜单有两点要注意的:
1、第二级也是个树形菜单,因此必须在第二级项目展开/回收时设置足够的空间来完全显示二级树形菜单;
2、在实现三级树形菜单时,发现菜单的方法都是用不了(如OnChildClickListener、OnGroupClickListener等),因此要获得选中的数据就必须在外部定义好回调函数,然后在第二级生成二级树形菜单时回调这个外部函数。
PS:本文在解决No.2关键点的时候,只能取得第三级选中的序号.....而第一,第二级依然无法获取其序号。
main.xml源码如下:
testExpandableList.java是主类,调用其他工具类,源码如下:
TreeViewAdapter.java是实现二级树形菜单的工具类,源码如下:
SuperTreeViewAdapter.java是实现三级树形菜单的工具类,会用到TreeViewAdapter.java,源码如下:
总结,使用ExpandableList实现三级树形菜单时有些bug不好解决,而且定义三维数组的时候也要倍加小心......所以尽量把数据化简来使用二级树形菜单。
分享到:
相关推荐
Android Recyclerview实现多级树形列表
NULL 博文链接:https://haiyang08101.iteye.com/blog/1559388
在android 中实现左边树形菜单,右边展开节点,类似美团网、大众点评网一样的,源码
树形菜单,用来展示有层次结构的数据,像文件管理器,一个文件夹下面有很多文件,文件夹,可能文件夹下面还有文件还有文件夹。我们需要展示这些结构,但是安卓并没有提供一个比较方便的控件来展示,所以就需要我们...
一般来说在Android里要实现树形菜单,都是用ExpandableList(也有高手自己继承ListView或者LinearLayout来做),但是ExpandableList一般只能实现2级树形菜单。本文所述实例也依然使用ExpandableList,但是要实现的是3...
在android设置上实现多级树形列表菜单,支持无限极列表,完美实现多级联动
多级树形选择列表,最近项目需求做一个android 多级树形选择列表,网上发现比较好的项目,分享一下
Android listview多级树形列表菜单,支持全选/反选功能,根据ID和组ID添加分支或叶节点
无限级数的属性菜单,并且支持多选功能
Android ExpandableListView双层嵌套实现三级树形菜单
一个RecyclerView,无限层级展示,不嵌套,高性能,企业级产品
主要为大家详细介绍了Android实现多级树形菜单并支持多选功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
仿淘宝,京东手机多级菜单效果,Android-树形(多级)菜单效果,
Css3折叠菜单-可展开的树形导航菜单,其实就是折叠、展开式的菜单,应用了HTML5重绘而成,无使用jquery,完全CSS3技术实现,面向Android手机等移动终端设备浏览,请注意不要使用IE等浏览器查看效果。
QML 中没有直接提供类似 android 的ExpandableListView二级列表控件,treeView,但是用 treeView 实在是有些不方便,并且达不到想要的效果,所以干脆用 ListView 来扩展一个。
主要介绍了Android UI 之实现多级列表TreeView示例,TreeView就是在Windows中常见的多级列表树,有兴趣的可以了解一下。