web-dev-qa-db-fra.com

Comment faire une vue Android qui bascule entre les vues en glissant / jetant

Je voudrais faire une vue dans mon Android qui bascule entre plusieurs vues sur un glissement/fling. Je voudrais qu'elle se comporte plus ou moins comme Android Launcher se comporte lors du basculement entre les vues. En particulier,

  1. Il devrait inverser les vues lors du balayage.
  2. Généralement, un balayage basculera d'une vue à l'autre. Il ne doit pas traverser toutes les vues.
  3. Si vous glissez lentement, vous devriez voir les vues glisser pendant que vous glissez, par exemple. la façon dont le lanceur le fait.

J'ai essayé d'utiliser un ViewFlipper avec un GestureOverlayView selon Romain Guy article de blog ici , mais il n'y a aucun indicateur pour l'utilisateur car il glisse. Cela rend la découvrabilité difficile, ce qui explique probablement pourquoi Launcher le fait comme ils le font.

J'ai essayé d'utiliser un objet Gallery, mais lorsque je glisse de gauche à droite, il y a un certain élan qui fait passer les utilisateurs à travers toutes les vues plutôt que de simplement les amener à la vue suivante.

Existe-t-il un bon moyen d'accomplir ce que j'essaie de faire?

32
emmby

Je sais que c'est une vieille question mais ViewPager est créé dans ce même but. ViewPager fait partie de Android et plus peuvent être trouvés sur http://Android-developers.blogspot.com/2011/08/horizontal-view-swiping-with- viewpager.html

27
binW

Jetez un œil à HorizontalPager . Il est en fait basé sur RealViewSwitcher , qui à son tour est basé sur le code de l'écran d'accueil Android Android) et prend en charge la pagination par enclenchement avec des commentaires par glisser-déposer, ainsi que des sous-vues imbriquées à défilement vertical. La prise en charge des gestes pour les balayages rapides n'est pas tout ce qu'elle devrait être, mais cela peut vous aider à y arriver (et je serais ravi des contributions).

EDIT: En 2012, vous êtes beaucoup mieux en utilisant Google ViewPager - il est dans la bibliothèque compat.

14
Yoni Samlan

Découvrez SwipeView dans ce projet https://github.com/fry15/uk.co.jasonfry.Android.tools Il fait exactement ce que vous voulez qu'il soit et est super simple à implémenter.

6
Jeff Gilfelt

@CommonsGuy a étendu ViewFlipper pour le faire. https://github.com/commonsguy/cwac-viewswiper Je n'ai pas encore utilisé celui-ci, donc je ne sais pas s'il bouge avec votre doigt comme le lanceur sinon vous allez devoir faire un OnTochListener pour le faire pour vous en moi.ACTION_MOVE vous mettrez à jour la vue pour changer sa position. Je posterai un exemple de code à mon retour si vous n'obtenez pas d'autre réponse.

0
FoamyGuy