来自JavaFX相对较新的人的一般性问题。我确信必须有一个简单的解决方案。我有一个大的可观察列表(10,000项)。我将它包装为FilteredList并在Tableview中使用它。单击一个按钮时,我会应用一个隐藏部分项目的谓词 - 可能是每三个项目。再次单击时,谓词将被清除。
我的问题是这个。用户通过Tableview / FilteredList页面到项目500.该项目没有焦点但未被选中但是是视图中显示的第一个项目。他们点击按钮,隐藏了三分之一的项目。 tableview从FilteredList中的第500个项目开始重新放置 - 列表中的更深层。
我希望列表重新显示显示应用谓词之前的大致位置。例如,如果过滤器未删除项目500,我希望它是重新显示后的第一个项目。如果它被过滤了,那么我希望项目501成为第一个重新显示的项目。从本质上讲,我希望显示的项目在应用谓词后应用谓词之前不会被过滤。如果之前显示以下内容:
500
501
502
503
504
过滤了和500和502,我希望它显示
501
503
504
505
506
不是以下
710
711
712
713
714
我希望这是有道理的。我不需要一个如何做到这一点的完整例子,但我确实可以使用某人指出我正确的方向。