RecyclerView 实现树形菜单
很早想写这样一个 Demo。以前实现树形菜单使用 TreeViewList(继承 ListView 的封装),或者用 ExpandableListView 实现多级菜单。后来发现根本不需要自定义控件——直接使用 RecyclerView,只需要控制数据源的展平转换即可。 核心思路:以递归方式将嵌套数据结构展平为线性列表,通过 notifyItemRangeInserted / notifyItemRangeRemoved 控制展开和收起。 ...
很早想写这样一个 Demo。以前实现树形菜单使用 TreeViewList(继承 ListView 的封装),或者用 ExpandableListView 实现多级菜单。后来发现根本不需要自定义控件——直接使用 RecyclerView,只需要控制数据源的展平转换即可。 核心思路:以递归方式将嵌套数据结构展平为线性列表,通过 notifyItemRangeInserted / notifyItemRangeRemoved 控制展开和收起。 ...