AppBar 中的标题变得太大

Title in AppBar grows too large

在某些视图中,我将所选项目的名称显示为 AppBar 的标题。但是当名称很长时,包含标题标签的VBox会增长到标签的prefWidth。你可以在第一张图片上看到结果。 作为解决方法,我向 appBar 添加了一个 styleClass,它为标签设置了 maxWidth。

   view.setOnShown(e -> getAppBar().getStyleClass().add("myStyleClass"));

虽然它可以工作,但像这样设置 maxWidth 是不好的做法,因为它不能调整到不同的屏幕尺寸。

如何实现第二张图的效果,让标题的宽度适应不同的屏幕尺寸?

基于场景尺寸设置标签最大宽度的快速但肮脏的解决方法可能是,在 View 子类上:

@Override
protected void updateAppBar(AppBar appBar) {
    appBar.setTitleText("Very very very long title");
    ((Label) appBar.getTitle()).maxWidthProperty().bind(appBar.getScene().widthProperty().subtract(100));       
}

减去的数量取决于您在该视图中的按钮数量(导航图标、操作图标或菜单按钮)。