CymChad / BaseRecyclerViewAdapterHelper

BRVAH:Powerful and flexible RecyclerAdapter
http://www.recyclerview.org/
MIT License
24.19k stars 5.14k forks source link

BaseNodeAdapter如何准确获取父node的下标 #3826

Open LjieQ opened 6 months ago

LjieQ commented 6 months ago

库版本:3.0.14 1、问题: 在使用BaseNodeAdapter集成树形结构的数据时(两层结构),父node和子node都添加了addChildClickViewIds,在NodeProvider的onChildClick监听其子控件的点击事件。我发现点击的position是父node和子node关联起来的,当我点击子node下的某个子控件时,想获取父node的下标(getAdapter().findParentNode(node)),此时获取的下标是动态变化的,有item折叠展开时获取的下标都不同,即有item展开时,会把子node的item都算上。 例如:A父node下有2个子node,B父node有1个子node,当点击B父node的子node想获取B父node的下标时,会有两种下标值: 1:A父node不展开的时候,获取到B父node的下标为1; 2:A父node展开时的时候,获取到B父node下标为3; 2、想实现的效果: 当我点击子node的某个子控件时,想通过getAdapter().notifyItemChanged()来单独更新其父node的数据。现在因为获取的position是不固定,所以无法通过notifyItemChanged来实现刷新。只能通过设置整个列表数据,通过notifyDataSetChanged刷新这个列表,有什么好的方法去实现吗?