我正在使用BorderPane在所有基点(即顶部,左侧,右侧,底部)放置4个工具栏。当工具栏展开以接受其第一个项目时,当工具栏变空时,此增长不会还原。我希望当它没有任何东西时缩小到它的初始状态。手动设置宽度或高度不会做任何事情,因为我确定这些是由布局处理的。
编辑:我已添加图片以显示我的意思
初始状态(空工具栏,我将 fx-border-color 设置为红色)
添加第一项
项目已删除,显示的工具栏未恢复为初始状态
答案 0 :(得分:1)
application/n-triples
不是一个窗格,因此它背后可能有不同的布局逻辑。实际上它似乎是为永久显示一些按钮控制而设计的。
当没有要显示的项目时,您可以隐藏它,而不是设置它的大小:
ToolBar
编辑:完整示例
toolbar.visibleProperty().bind( Bindings.isNotEmpty( toolbar.getItems() ) );
答案 1 :(得分:0)
我找到了解决这个问题的方法,但从长远来看,它可能不是最好的解决方案。
由于我在第一次清空时发现无法恢复到工具栏的大小,因此我在工具栏的项目中添加了一个更改侦听器,以便将其从布局中删除(如果它的话)空的,并在它不再空的时候恢复它,如下所示:
leftToolbar.getItems().addListener(new ListChangeListener<Node>(){
@Override
public void onChanged(javafx.collections.ListChangeListener.Change<? extends Node> c) {
if(leftToolbar.getItems().isEmpty()) {
borderPane.setLeft(null);
} else if(borderPane.getLeft() == null) {
borderPane.setLeft(leftToolbar);
}
}
});