首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >支持列表的TablewView setAll重置选择但不重置焦点

支持列表的TablewView setAll重置选择但不重置焦点
EN

Stack Overflow用户
提问于 2020-03-15 23:23:46
回答 1查看 29关注 0票数 0

我正在开发一个类似任务管理器的应用程序,其中TableView的整个备份列表被定期运行命令行程序的结果所取代。我使用setAll将表视图设置为最新的项目。它可以工作,但它会重置视图中的选择。

有趣的是,蓝色焦点栏不会移动,但在使用setAll更新表视图的第一项后,会在表视图的第一项上显示一个非常小的轮廓。我猜这就是所选索引的呈现方式。当我使用箭头键导航时,所选内容将周期性地跳回到列表的第一项。

有人知道如何解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-03-16 01:04:14

我找到了一种方法来做这件事,但我相信还有更好的方法。我手动计算新状态和以前状态之间的差异。然后分别调用removeAll和addAll方法:

代码语言:javascript
运行
复制
object PortBindingLock

private fun reloadBindings() {
    synchronized(PortBindingLock) {
        val previous = this.portBindings.toSet()
        val current = processService.processPortBindings().toSet()
        val toRemove = Sets.difference(previous, current)
        val toAdd = Sets.difference(current, previous)
        this.portBindings.removeAll(toRemove)
        this.portBindings.addAll(toAdd)
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60694448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档