我有一个谜题。当我每次保存文件后调用refresh()
方法刷新TreeViewer
时,就像这个treeViewer.refresh()
一样,它总是只显示根元素。
刷新前
刷新后
我认为有必要编写一个上次重新刷新节点的方法。就像这样
我尝试实现此方法的代码如下:
Object[] expanded = treeViewer.getExpandedElements();
treeViewer.getControl().setRedraw(false);
treeViewer.refresh();
treeViewer.setExpandedElements(expanded);
treeViewer.getControl().setRedraw(true);
但是这种方法没有达到预期的效果,并且变量expanded
的内容得到正确。我想知道我的方法是否正确?正确的方法应该如何实现这个功能?或者如何修改?