在某些观看次数中,我会将所选项目的名称显示为AppBar
的标题。但是当名称很长时,包含标题标签的VBox
会增长到标签的prefWidth。您可以在第一张图片上看到结果。
作为一种解决方法,我将一个styleClass添加到appBar,它设置标签的maxWidth。
view.setOnShown(e -> getAppBar().getStyleClass().add("myStyleClass"));
虽然它正常工作,但设置maxWidth是不好的做法,因为它无法调整到不同的屏幕尺寸。
如何在第二张图片上获得结果,并使标题的宽度适应不同的屏幕尺寸?
答案 0 :(得分:1)
基于场景尺寸设置标签最大宽度的快速而肮脏的解决方法可以是View子类:
@Override
protected void updateAppBar(AppBar appBar) {
appBar.setTitleText("Very very very long title");
((Label) appBar.getTitle()).maxWidthProperty().bind(appBar.getScene().widthProperty().subtract(100));
}
其中减去的金额取决于您在该视图中的按钮数量(导航图标,操作图标或菜单按钮)。