прокрутка смени слушателя на ежевику - PullRequest
0 голосов
/ 30 июля 2011

Я уже разместил свой вопрос под ссылкой ..

слушатель смены прокрутки на blackberry

Ошибка устранена.

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

enter image description here

Но мне нужно переместить позицию центра поля следующим образом.

enter image description here

Просьба дать любую идею ..

1 Ответ

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

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

Если вы создаете событие прокрутки программно, тогда установите некоторое логическое значение, давайтеназовите это ignoreScrollEvent, к истине.Что-то вроде этого (псевдокод):

private boolean ignoreScrollEvent = false;

public void scrollChanged(Manager manager, int newHorizontalScroll, 
         int newVerticalScroll) {
    if (!ignoreScrollEvent) {
         ignoreScrollEvent = true;
         // recalculate the newHorizontalScroll so the field in the focus 
         // gets in the middle
         horizontalScrollLayout.setHorizontalScroll(newHorizontalScroll);
         int fieldIndex = horizontalScrollLayout.getFieldAtLocation(
             newHorizontalScroll + customfieldwidth, 0
         );
         Field f = horizontalScrollLayout.getField(fieldIndex);
         f.setFocus();
         invalidate();
    } else {
         ignoreScrollEvent = false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...