2010-03-11 4 views
2

Les vues ne sont pas mises en cache dans ViewFlipper. Existe-t-il un moyen d'obtenir une image de la vue et de la montrer à l'utilisateur afin qu'il voit l'Ui comme on le voit sur Home scrren (quand on glisse la vue précédente se déplace aussi et quand on lève le doigt, alors seulement Ce que je veux faire, c'est que lorsque l'utilisateur commence à déplacer son écran à l'écran, la vue doit également se déplacer (créer une image de vue).Problème de mise en cache ViewFlipper

Je n'arrive pas à le faire, car lorsque nous regardons la vue actuelle et la vue suivante, nous n'obtenons pas les deux visibles lorsque nous déplaçons le doigt sur l'écran.

S'il vous plaît, si quelqu'un obtient ce que j'essaie de faire, aidez-moi.

Merci, Farha

Répondre

4

Il est difficile de faire défiler et de suivi swipe travaillant sur Android, tout en utilisant ViewAnimator ou ses sous-classes.

Ils vous permettent de définir des animations d'entrée et de sortie et de les démarrer à un moment donné, mais elles fonctionnent avec des animations discrètes, que ce soit-ci ou les autres. Ils utilisent en fait FrameLayout et, après l'exécution de l'animation in ou out, la visibilité des autres vues est définie sur View.GONE pour les empêcher de s'afficher sous/sur votre View actuel.

L'application Launcher et l'application Galerie effectuent réellement les fonctionnalités que vous souhaitez, en utilisant une approche différente. Ils suivent la saisie tactile de l'utilisateur (onTouchEvent()), sur MotionEvent.ACTION_MOVE ils effectuent des animations manuellement et sur le MotionEvent.ACTION_UP sur la vue appropriée, comme dans l'iPhone. Malheureusement, cette approche est en réalité plus compliquée qu'elle n'en a l'air. Avec la manipulation manuelle, vous devez vous assurer que vous prenez soin de tout ce qui touche à l'entrée tactile. Ceci inclut beaucoup de flag-raise, de vérification de valeur, de délégation d'événement, etc. Si vous voulez mieux vous familiariser avec cela, jetez un oeil à ces classes du code source Gallery3D ou Launcher.

Une autre façon d'obtenir un bon défilement horizontal est d'utiliser HorizontalScrollView. Vous devez trouver un moyen de recycler vos vues, comme vous le feriez avec un ListView et vous devez ajouter la logique snap-to-view, mais si vous devez prendre soin d'un petit nombre de vues, cela pourrait être le plus simple approche.

Espérons que ça aide.

Questions connexes