2016-09-06 83 views
0

所以讓我們說我們有一個ScrollPane和一個垂直的ScrollBar。在JavaFX中調整窗格大小後,是否可以保持ScrollBar的位置?

在ScrollPane內部,我們有一個垂直擴展的FlowPane。

FlowPane內部我們有大量的小元素。

現在我們可以說我的舞臺窗口尺寸爲500x500,滾動窗格上的ScrollBar位於0.5左右。

如果我擴大舞臺窗口並使其顯示全屏,FlowPane尺寸也會展開,並且它將具有更多可用的寬度,因此它的高度會隨着更多的元素內部能夠適合而降低在一排中,因此該流片將具有較少的行。

這將導致滾動條的地方跳到位置0.9左右(非常粗略地)

我不喜歡這種行爲,我需要滾動條停留在0.5的位置。

這可能嗎?

+0

你想要添加項目時滾動位置保持在0.5? – Alexiy

+0

每當滾動窗格內容的高度發生變化時,所以當添加項目時也是如此。 – user1488773

回答

0

可以通過將一個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 
      } 
     }); 
相關問題