Label prefHeight vs wrapText
Werner Lehmann
lehmann at media-interactive.de
Wed May 28 16:10:51 UTC 2014
Martin,
thanks for the explanation. Feels good to finally understand this ;-)
And while I created a ticket as per your suggestion...
[#RT-37309] VBox: vshrink layout hint similar to vgrow
...it seems I can use this as a workaround:
> label1.minHeightProperty().bind(Bindings.createDoubleBinding(
> () -> label1.prefHeight(vbox.getWidth()),
> vbox.widthProperty()));
Maybe something similar could be made available per label boolean
property. So basically the ability to ask a label to consider wrapping
when calculating its minHeight... I can imagine that this might have
made more sense as a default behavior: if people explicitly ask for
wrapping text, they would probably accept a larger minHeight.
Werner
On 28.05.2014 16:17, Martin Sladecek wrote:
> Hi Werner,
> the important min/pref/max height is the one with width parameter as
> Label is horizontally biased. So while minHeight(width) == 17,
> prefHeight(width) == 34.
> But in your case, with ListView's prefHeight == 1000, you'll overflow by
> over 400px. VBox does evenly subtract these overflow pixels from
> children until it gets to their minimum. Which happens in case of the Label.
> Vgrow is ignored when shrinking (see javadoc for setVgrow). Currently,
> neither VBox nor GridPane allow you define policy for children when the
> pane is below it's pref size and children need to be shrunk. Seems like
> a good candidate for a Tweak in JIRA. ;-)
> If you need to keep your Label at some height, currently you can only
> raise it's minHeight, but I understand that in this case it may be
> tricky as it depends on the width.
>
> -Martin
More information about the openjfx-dev
mailing list