Проведите, чтобы переключить выбор вкладки - PullRequest
5 голосов
/ 12 апреля 2011

У меня есть приложение, которое представляет собой вкладку с различными вкладками, которые загружают активность.Я хотел бы добавить жесты для переключения между вкладками, как на самом элементе управления вкладками, так и на каждом действии, загруженном на вкладке.Возможно ли что-то подобное?Я не уверен, на какой «глубине» прослушивается этот жест, когда вы делаете жесты на действии, размещенном в элементе управления вкладками, или если внутренним действиям придется передавать данные на узел вкладок.

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

Это, конечно, возможно;вам нужно написать собственный макет и переопределить onTouchEvent и onInterceptTouchEvent , чтобы решить, следует ли отправлять жесты дочерним элементам.См. Источник HorizontalPager для получения подробной информации о том, как вы могли бы сделать это.На самом деле вы можете просто захотеть использовать HorizontalPager прямо вверх (есть демоверсия по имитации вкладок с ним), так как я думаю, что прокрутка контента делает намного понятнее, что вы можете перемещаться между вкладками.

2 голосов
/ 12 апреля 2011

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

GestureDetector

Обнаруживает различные жесты и события используя прилагаемые MotionEvents. GestureDetector.OnGestureListener обратный вызов уведомит пользователей, когда произошло конкретное событие движения. Этот класс должен использоваться только с MotionEvents сообщили через сенсорный (не использовать для трекбола). Чтобы использовать это Класс:

  • Создать экземпляр GestureDetector для вашего просмотра в Метод nTouchEvent (MotionEvent) убедитесь, что вы звоните
  • onTouchEvent (MotionEvent). методы, определенные в вашем обратном вызове, будут исполняться, когда происходят события

Источник: http://developer.android.com/reference/android/view/GestureDetector.html

Жест пальцем

На этой странице показано, как распознать жест смахивания с помощью GestureDetector: http://smartandroidians.blogspot.com/2010/04/swipe-action-and-viewflipper-in-android.html

...