трекролл работает не так, как я хочу или ожидаю, ежевика

я работаю над кривой ежевики 8300

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

==================================================================================

--Title area that contains a focusable field(BACK)--
--Non focusable Label field that indicates the name of the user--
--A horizontal field manager1 that contains 4 buttons--
--A horizontal field manager2 that contains 4 buttons--
--A horizontal field manager2 that contains 4 buttons--

==================================================================================

теперь предположим, что в настоящее время фокус находится на кнопке BACK, и я прокручиваю колесо прокрутки вниз, тогда фокус должен перейти на 1-ю кнопку manager1. Опять же, когда я прокручиваю вниз, тогда фокус должен приходить на 1-ю кнопку manager2, а не на 2-ю кнопку manager1 ( как это происходит на устройстве)

мой код :::

protected boolean trackwheelRoll(int amount, int status, int time) 
{
 focusIndex = this.getFieldWithFocusIndex();
 System.out.println("focus index ::::::::::::::::"+focusIndex);
 Field f;
 if(focusIndex!=0)
 {
   if(amount==-1)
   {
    //move up
       if(focusIndex>=0)
       {
        focusIndex = focusIndex-1;
         f = getField(focusIndex);
         f.setFocus();      
       }
   }
   if(amount==1)
   {
    //moving down
        if(focusIndex<=3)
        {
           f = getField(++focusIndex);
           f.setFocus();
        }
   }
     }
 return super.trackwheelRoll(amount, status, time);
}

даже после этого элемент управления на симуляторе резко перемещается, но на устройстве никаких изменений не произошло


person Swati    schedule 30.04.2010    source источник


Ответы (1)


Попробуйте переопределить метод [navigationMovement] [1] вместо trackwheelRoll - у вас будет доступ к параметрам «dx» и «dy», чтобы вы могли определить, движутся ли они вверх / вниз или из стороны в сторону. Метод trackwheelRoll теперь несколько архаичен, поскольку устройств trackwheel больше нет.

[1]: http://www.blackberry.com/developers/docs/5.0.0api/net/rim/device/api/ui/Manager.html#navigationMovement(int, int, int, int)

person Marc Novakowski    schedule 30.04.2010
comment
ваша идея сработала !!! Я попробовал навигационное движение, я понял, что колесо прокрутки не работает на устройствах, имеющих пробел или трекбол - person Swati; 01.05.2010