假设我们有一个具有垂直ScrollBar的ScrollPane。
在ScrollPane内部,我们有一个垂直扩展的FlowPane。
在FlowPane中,我们有大量的小元素。
现在假设我有一个500x500大小的舞台窗口,滚动窗格上的ScrollBar定位在0.5左右。
如果我展开stage窗口并使其全屏显示,那么FlowPane的大小也会扩大,并且会有更多的宽度可供其使用,因此它的高度将会减小,因为其中可以容纳一行的元素更多,因此流窗格的行数也会更少。
这将导致滚动条跳到0.9左右的位置(非常粗略)
我不喜欢这种行为,我需要滚动条停留在0.5的位置。
这有可能做到吗?
发布于 2016-09-07 00:33:18
可以通过将ListChangeListener附加到FlowPane的子项来实现。如下所示:
FlowPane flowPane=new FlowPane();
ScrollPane scrollPane=new ScrollPane(flowPane);
flowPane.getChildren().addListener(new ListChangeListener<Node>()
{
@Override
public void onChanged(Change<? extends Node> c)
{
scrollPane.setHvalue(0.5); //sets the horizontal scroll
scrollPane.setVvalue(0.5); //sets the vertical scroll
}
});https://stackoverflow.com/questions/39351531
复制相似问题