Как реализовать перетаскивание в LWUIT?

Мое приложение LWUIT имеет 3 формы:

1) Форма А 2) Форма В 3) Форма С

Текущая форма, отображаемая на экране, — FormB.

Дело 1:

Если пользователь проводит пальцем ВЛЕВО по своему телефону с сенсорным экраном, я хочу, чтобы LWUIT зафиксировал это событие и отобразил FormC.

Случай 2:

Если пользователь проводит пальцем ВПРАВО по своему телефону с сенсорным экраном, я хочу, чтобы LWUIT зафиксировал это событие и отобразил FormA.

Как мне это сделать? Я думаю, что это должно что-то делать с событием перетаскивания, но не уверен, как это реализовать.

Спасибо.


person Nikhil    schedule 19.04.2012    source источник


Ответы (3)


Используйте компонент Tabs с 3 контейнерами, он поддерживает Swipe. Вы можете сделать сами вкладки скрытыми.

person Shai Almog    schedule 19.04.2012

вместо того, чтобы принимать 3 формы, используйте 3 контейнера в 1 форме и setScrollableX (true) и добавьте все компоненты в соответствующие контейнеры.

person Vijay YD    schedule 19.04.2012
comment
Хорошо, тогда вы пробовали использовать метод PointerPressed / Pointerdrag? Переопределите эти методы и получите X, Y позицию (любую) после запуска события, просто вызовите другой form.show() - person Vijay YD; 19.04.2012
comment
хорошо... мне нужно добавить какой-либо конкретный прослушиватель событий в мою форму? Все, что мне нужно, это событие перетаскивания указателя и направление, в котором оно перетаскивается. Затем я могу использовать FORMNAME.show(). Вы можете сказать мне, как это сделать? - person Nikhil; 19.04.2012

person    schedule
comment
я реализовал метод pointerPressed() и pointerReleased(), вычислил разницу между координатами и принял решение показать ту или иную форму... - person Nikhil; 19.04.2012
comment
Эй, не могли бы вы рассказать мне, как создать условие if здесь? Это не работает для меня. Здесь есть только один x, y. Как мне определить точки, где началось перетаскивание, и точки, где перетаскивание закончилось? Я хочу рассчитать разницу между этими двумя точками, а затем принять решение, показывать форму слева или форму справа. - person Nikhil; 22.04.2012