Как сделать Android-представление, которое переключается между представлениями при пролистывании / отбрасывании - PullRequest
32 голосов
/ 22 февраля 2011

Я бы хотел, чтобы в моем приложении для Android отображался вид, который переключается между несколькими представлениями при пролистывании / отбрасывании.Я хотел бы, чтобы он вел себя более или менее так же, как Android Launcher ведет себя при переключении между представлениями.В частности,

  1. Это должно перевернуть взгляды при пролистывании.
  2. Как правило, пролистывание будет переключаться между одним видом и следующим.Он не должен пролистывать все виды.
  3. Если вы проводите пальцем медленно, вы должны видеть, как виды перетаскиваются, когда вы проводите, например.как это делает Launcher.

Я пытался использовать ViewFlipper с GestureOverlayView в соответствии с постом в блоге Ромена Гая здесь , но для пользователя нет индикатора, так как они перелистывают,Это затрудняет обнаружение, и, вероятно, именно поэтому Launcher делает это так, как они делают.

Я пытался использовать объект Gallery, но когда я провожу пальцем слева направо, появляется определенная доля импульса, через которую проходит пользователь.все виды, а не просто переходить к следующему.

Есть ли хороший способ выполнить то, что я пытаюсь сделать?

Ответы [ 4 ]

27 голосов
/ 25 августа 2011

Я знаю, что это старый вопрос, но ViewPager создан для этой же цели. ViewPager является частью пакета совместимости с Android, и его можно найти по адресу http://android -developers.blogspot.com / 2011/08 / horizontal-view-swiping-with-viewpager.html

14 голосов
/ 22 февраля 2011

Взгляните на HorizontalPager . На самом деле он основан на RealViewSwitcher , который, в свою очередь, основан на коде домашнего экрана Android и поддерживает мгновенный просмотр страниц с обратной связью перетаскивания, а также вложенные вертикально прокручиваемые подпредставления. Поддержка жестов для быстрой прокрутки - это еще не все, что нужно, но это может помочь вам в этом (и я бы приветствовал их возвращение).

РЕДАКТИРОВАТЬ: С 2012 года вам гораздо лучше использовать Google ViewPager от Google - он находится в библиотеке Compat.

6 голосов
/ 22 февраля 2011

Проверьте SwipeView в этом проекте https://github.com/fry15/uk.co.jasonfry.android.tools Он делает именно то, что вы хотите, и очень прост в реализации.

0 голосов
/ 22 февраля 2011

@ CommonsGuy расширил ViewFlipper, чтобы сделать это.https://github.com/commonsguy/cwac-viewswiper Я еще не использовал этот, так что я не уверен, что он движется пальцем, как пусковая установка, если вы не собираетесь создавать OnTochListener, чтобы сделать это для вас во мне. ACTION_MOVE вы обновите представлениеизменить свою позицию.Я отправлю пример кода, когда вернусь домой, если вы не получите другой ответ.

...