Как отобразить многострочную текстовую область в lwuit (J2ME)? - PullRequest
2 голосов
/ 22 июля 2011

Я создал TextArea с оператором ....

quest1Label = new TextArea();

Я использую TextArea для отображения Labels .... Поэтому я использую следующую функцию, чтобы установить егосвойства ....

private void setTextAreaProperty(TextArea textArea) {
    String textStr = textArea.getText();
    if (textArea.getStyle().getFont().stringWidth(textStr) > (width - 25)) {
        textArea.setSingleLineTextArea(false);
    } else {
        textArea.setSingleLineTextArea(true);
        textArea.setPreferredW(width);
    }
    textArea.setBorderPainted(false);
    textArea.setFocusable(false);
    textArea.setStyle(getPreviewStyle());
}

где width = Display.getInstance (). getDisplayWidth (); моя проблема в том, что до двух строк метка работает правильно, но ....если текст еще больше, он не идет на третью строку.любая помощь в этом отношении будет оценена.

Заранее спасибо, ....

Ответы [ 2 ]

7 голосов
/ 24 июля 2011

Вам необходимо использовать конструктор TextArea, подобный этому new TextArea(1, 20), который позволяет макету более эффективно «расти».

Причина в основном историческая, LWUIT по умолчанию имеет 3 столбца для TexAarea, что позволяет TexAarea хорошо уменьшаться, но при росте сосет. Сложность в увеличении / уменьшении обусловлена ​​тем фактом, что макеты могут быть глубоко вложенными и прокручиваемыми, поэтому вычисление доступного пространства относительно требуемого пространства становится рекурсивным и в некоторых трудно обнаруживаемых точках неразрешимыми (бесконечная рекурсия).

2 голосов
/ 22 июля 2011

Вы пробовали setGrowByContent ?Возможно, по умолчанию количество строк равно 2, и оно не увеличивается больше.

С уважением.

...