Переопределение ошибки перемещения навигации для PictureScrollField - PullRequest
0 голосов
/ 17 января 2012

Я пытаюсь перебрать protected boolean navigationMovement(int dx,int dy,int status,int time) в подклассе MainScreen, и к нему добавлен PictureScrollField. Если я не переверну его, то PictureScrollField работает нормально, но когда я перезагружаю его, currentImageIndex остается зафиксированным на нуле и не прокручивается! Что я могу сделать, чтобы предотвратить эту аномалию, или есть другой (лучший) способ сделать это? Я просто хочу изменить заголовок поля с текущим изображением PictureScrollField. Другими словами, мне нужно получить currentImageIndex для динамического изменения данных, видимых на экране. Поле является пользовательским, поэтому я не мог использовать функции метки / выноски для ScrollEntry.

РЕДАКТИРОВАТЬ: я перебегаю protected boolean navigationMovement(int dx,int dy,int status,int time) и возвращаю false, но это не сработало.

1 Ответ

0 голосов
/ 18 января 2012

Мне пришлось обойти поведение по умолчанию PictureScrollField следующим образом:

protected boolean navigationMovement(int dx,int dy,int status,int time){
// gallery is an object of PictureScrollField
    if(gallery.getVisualState()==Field.VISUAL_STATE_FOCUS && dx != 0){
        int currentInd = gallery.getCurrentImageIndex() + dx;
        gallery.selectImageAtCoordinate((dx)*50 + Display.getWidth()/2);
        // 50 is the width of the gallery object as provided in the constructor
        // Instead of 50, we can also write gallery.getWidth()
        // use the current image index as - gallery.getCurrentImageIndex()
    }
    return false;
}

Странно, однако, что, несмотря на возврат false (что означает, что событие не было использовано), PictureScrollField не обрабатывал навигационные движения! В любом случае, ручная настройка currentImageIndex работает одинаково хорошо!

...