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));
}
减去的数量取决于您在该视图中的按钮数量(导航图标、操作图标或菜单按钮)。
在某些视图中,我将所选项目的名称显示为 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));
}
减去的数量取决于您在该视图中的按钮数量(导航图标、操作图标或菜单按钮)。