Как обновить форму lwuit? - PullRequest
4 голосов
/ 28 июля 2011

Я работаю в проекте, в котором пользователь заполняет анкету, а затем ответы отправляются на сервер. Для простоты я сохранил два вопроса на экран, и после нажатия на следующую команду пользователь получает следующие два вопроса. Я использовал lwuit framework в этом проекте.

Чтобы уменьшить требования к памяти, я создаю form, questLabel1, ansCombo1, questLabel2 и ansCombo2 только один раз. и их свойства устанавливаются в соответствии с текущим кадром (экраном). Проблема в том, что если вы находитесь в форме 2, прокрутите вниз до последней опции, а затем нажмете следующую кнопку, поскольку при прокрутке вниз по форме верхние компоненты не отображаются даже в следующей форме перепробовал так много. создание нового экземпляра формы может работать, но я не хочу использовать это по очевидным причинам памяти,

Любое другое решение?

заранее спасибо,

Ответы [ 3 ]

3 голосов
/ 28 июля 2011

Чтобы сделать прокрутку так, чтобы компонент был виден, отметьте Component / Container API Javadocs. Я видел на странице lwuit, они предлагают некоторые методы с семантикой, которая подходит - scrollComponentToVisible, scrollRectToVisible. "Гарантирует, что компонент виден в свитке, если этот контейнер прокручиваемый ..." и тому подобное

  // above extracted from comment to an answer to make it more visible
  // for the case if some reader has similar problem
2 голосов
/ 28 июля 2011

Вы пробовали form.revalidate() ?.Потому что это полезно, когда вы изменяете иерархию контейнеров и хотите повторить макет.

Обновление: Используйте requestFocus(); в первом компоненте следующей формы.Он автоматически фокусируется на первом (верхнем) компоненте.

1 голос
/ 20 сентября 2012

Вы можете использовать form.refreshTheme () или form.revalidate () для обновления вашей формы. Если вы сделали обновления для какого-либо конкретного контейнера, сделайте то же самое для контейнера.

...