1

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

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

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

如何在第二张图片上达到效果,并使标题的宽度适应不同的屏幕尺寸?

在此处输入图像描述

4

1 回答 1

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));       
}

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

于 2016-04-07T19:36:12.157 回答