Проблемы с прокруткой с помощью TextArea в LWUIT - PullRequest
1 голос
/ 04 октября 2011

У меня есть TextArea в LWUIT, которым я манипулирую. У меня есть следующие две проблемы:

  1. Хотя я звоню setIsScrollVisible(true), у меня, похоже, нет полоса прокрутки и не может прокручиваться, когда вывод становится ниже видимого площадь контейнера.

  2. Как мне сказать TextArea, чтобы автоматически прокрутить вниз программно?

Мой код для инициализации TextArea выглядит следующим образом:

myTextArea = new TextArea(20, Display.getInstance().getDisplayWidth());
myTextArea.setEditable(false);
myTextArea.setEnabled(true);
myTextArea.setIsScrollVisible(true);
myTextArea.setGrowByContent(false);
System.out.println(myTextArea.isScrollableY());

isScrollableY() возвращает true. Есть идеи? Есть ли что-то, что мне не хватает? Кажется, в API нет ничего видимого, что позволило бы мне явно включать или отключать прокрутку. Заранее благодарим за любую помощь в этом.

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

Ширина текстовой области указана в столбцах, а НЕ в пикселях, как в вашем коде.

Установка прокрутки в видимое положение не приведет к ее появлению, поскольку полосы прокрутки LWUIT всегда «по мере необходимости», что означает, что полоса прокрутки будет появляться только при необходимости, если установить для этого значения значение false, то прокрутка будет скрыта независимо от необходимости.

Чтобы текстовая область захватила всю ширину, просто поместите ее в контейнерную форму Y контейнера / формы, и менеджер макета растянет ее по оси X.

Вы можете использовать scrollRectToVisible() для прокрутки текстовой области вниз или, альтернативно, вы можете получить текстовую область и использовать setScrollY(int) с соответствующим значением (см. исходный код текстовой области, чтобы узнать, как это используется для прокрутки текстовой области.

0 голосов
/ 03 ноября 2011

Попробуйте простой textArea.setFocusable(false). Это сработало для меня.

...