Как изменить размер SmartGWT Label или HTMLFlow, чтобы соответствовать размеру содержимого? - PullRequest
3 голосов
/ 26 ноября 2011

Я чувствую, что должен делать что-то действительно глупое.Что я могу сделать, чтобы размер HTMLFlow соответствовал содержанию?Мне не нужно, чтобы это делалось динамически, только в первый и единственный раз, когда он был создан.Ниже приведены два способа, которыми я попробовал (с различными перестановками, не перечисленными) без удачи.Я также попробовал с лейблом безрезультатно.

    HLayout layout = new HLayout();
    layout.setWidth100();
    layout.setHeight(25);

    HTMLFlow bodyTypeLabel = new HTMLFlow();
    bodyTypeLabel.setHeight(25);
    bodyTypeLabel.setContents(wrapFontFace("longer content", "verdana", "2"));

    HTMLFlow drinkLabel = new HTMLFlow();
    drinkLabel.setHeight(25);
    drinkLabel.setWidth(10);
    drinklabel.setAutoWidth();
    drinkLabel.setOverflow(Overflow.VISIBLE);
    drinkLabel.setContents(wrapFontFace("content2", "verdana", "2"));

В принципе, с любым из них, кажется, что бы ни было, ширина установлена ​​на некоторое фиксированное значение, которое не изменяется.

Это будет выглядеть как

longer content            content2

или

longer content2
content

Во втором примере «более длинный контент» должен быть в одной строке, так как этоотделяйте label / htmlflow от 'content2'.Итак, я либо получаю много лишних пробелов, либо перенос слов.Кажется, это должно быть просто, так может ли кто-нибудь помочь мне здесь?Я хочу, чтобы это выглядело так:

longer content content2

1 Ответ

4 голосов
/ 26 ноября 2011

Похоже, это делает трюк для меня:

drinkLabel.setHeight(25);
drinkLabel.setWidth(10);
drinkLabel.setOverflow(Overflow.VISIBLE);
drinkLabel.setContents(wrapFontFace(drinkContent, "verdana", "2"));
drinkLabel.setWrap(false);
drinkLabel.setExtraSpace(5);

Последний бит, потому что кажется, что он урезает пробелы в контенте, грр. Хотелось бы, чтобы был какой-то способ не делать этого.

...