Closed zhengyu-android closed 1 year ago
可以看这里,第二个参数传 node 就行。
多个 node 改变的话我觉得可以找到这两个 node 的共同父 node,然后直接刷新这个父 node。
如果TreeView所有的数据都需要换掉,该如何操作呢,目前我是item替换了所有的数据,然后使用 lifecycleScope.launch { binding.treeView.refresh(true, binding.treeView.tree.rootNode) } 并无效果
你这里第一个参数应该是传 false 哦,传 ture 的话还是从缓存里拿数据的。
lifecycleScope.launch { binding.treeView.refresh(false, binding.treeView.tree.rootNode) } 并不能刷新当前treeview,我目前的需求是存储当前的树结构,所以使用了item转json存储起来,然后需要的时候取出来转成item的格式,在刷新treeview,但目前的treeview并不能实现
是用的 TreeNodeGenerator
吗?
我看了一下,好像是在 TreeView#refresh
里直接调用的这句
tree.refreshWithChild(node, withExpandable = true)
这个意思是只刷新展开的节点,可能是你的节点没展开。
目前你可以先这样应付,下个版本我会在 TreeView#refresh
里面加 withExpandable。
// refresh for TreeNodeGenerator
treeView.tree.refreshWithChild(node,false)
// refresh for cache
treeView.refresh(node,true)
当我使用 lifecycleScope.launch { binding.treeView.refresh() } 这个是怎么做到单个node刷新的,并且我如果两个node改变了,为什么不能一起刷新掉