2016-04-07 12 views
1

一部のビューでは、選択したアイテムの名前がAppBarのタイトルとして表示されます。しかし、名前が非常に長い場合、タイトルラベルを含むVBoxはラベルのprefWidthになります。結果は最初の画像で確認できます。 回避策として、ラベルのmaxWidthを設定するappBarにstyleClassを追加します。AppBarのタイトルが大きくなりすぎる

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

それが働いているが、それは異なる画面サイズに調整することができないので、そのようのmaxWidthを設定する悪い習慣です。

どのようにして2番目の画像で結果を達成し、タイトルの幅をさまざまな画面サイズに適応させることができますか?

enter image description here

答えて

1

ビューサブクラスで、可能性がありシーン寸法に基づいてラベルの最大幅を設定するために迅速かつ汚い回避策:

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

量が依存します減算しますそのビューにあるボタンの数(ナビゲーションアイコン、アクションアイコン、またはメニューボタン)。

+0

はい、これも私が考えていたことです。確かに良い解決法ですが、私は固定値を使用するアイデアが好きかどうかはわかりませんが、追加アイテムのサイズを知る必要があります。 – jns

+1

これは、新しいCharm 2.2.0バージョンの[リリース](http://gluonhq.com/gluon-mobile-2-2-0-released/)で修正する必要があります。確認できますか? –

+0

はい、動作します。非常に素晴らしい – jns

関連する問題