JavaFX - 在父节点上滚动

时间:2014-02-06 08:18:03

标签: listview scroll javafx

我目前正在JavaFX中创建联系人列表。联系人组是手风琴的TitledPane,每个TitledPane的内容都是ListView。手风琴包裹在ScollPane中。

每次扩展TitledPane时,我都会调整手风琴的高度,以便在没有scollbar的情况下完全显示ListView(如下面的代码所示)。滚动条可以出现在手风琴上。

groupAccordion.expandedPaneProperty().addListener(new ChangeListener<TitledPane>() {
    @Override public void changed(ObservableValue<? extends TitledPane> property, final TitledPane oldPane, final TitledPane newPane) {
        if (newPane != null) {
            groupAccordion.setMinHeight(listViewFullSize);
            groupAccordion.setMaxHeight(listViewFullSize);
        }
    }
});

这是FXML:

<ScrollPane fx:id="scrollPane" prefHeight="-1.0" prefWidth="-1.0" 
xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" 
fx:controller="GroupsController">
  <content>
    <Accordion fx:id="groupAccordion" expandedPane="$null" minWidth="-1" prefHeight="-1.0" prefWidth="-1.0" style="" />
  </content>
  <stylesheets>
    <URL value="@../resources/groups/GroupsScreen.css" />
  </stylesheets>
</ScrollPane>

我的问题是当鼠标光标在ListView上时(如屏幕截图所示),滚动对手风琴scoll bar(场景的唯一滚动条)没有影响。当光标在手风琴上时,滚动按预期工作。

ListView

我尝试设置ListView的滚动侦听器,但它甚至没有被调用,因为没有滚动条。

如何让滚动在父节点上运行?

谢谢

0 个答案:

没有答案