La désactivation de l'animation dans ViewPager
J'aimerais désactiver toutes les animations pour les transitions de mon custom ViewPager
.
Ce point de vue pager contient quatre onglets, chaque onglet charge un Fragment
- et que le point de vue pager n'est de passer les onglets: par exemple, la première page est l'index, la seconde est de la carte, etc.
Le problème est que si, étant le premier onglet choisi, je clique sur le quatrième onglet, je peux voir comment l' ViewPager
passe par le deuxième et le troisième onglet et s'arrête sur la quatrième, et je ne veux pas que cela se produise.
J'ai essayé de désactiver toutes les animations de cette ViewPager
essayez d'utiliser une setAnimation
à null
chaque fois que l'utilisateur choisit un nouvel onglet à être affiché, mais cela ne fonctionne toujours pas.
Une idée pour réaliser cela, s'il vous plaît?
Merci beaucoup à l'avance!
EDIT: j'ai aussi essayé de remplacer onCreateAnimation
pour chaque Fragment
mais toujours pas de travail
- Vous voulez dire que vous voulez supprimer les gestes de balayage de la capacité de trop, je le comprends. Si oui, essayez de créer un nouveau projet pour 4.0 + dans Eclipse, il vous permettra de créer un projet vide avec les deux swipeable et non swipeable onglets, vérifiez les différences, c'est le moyen le plus rapide et vous pouvez voir beaucoup de code.
- eh bien, en fait on ne peut pas glisser horizontalement, maintenant que la cliente n'a pas aimé, donc je veux juste supprimer les animations (balayage est déjà désactivé).
- voir ma réponse ici - stackoverflow.com/a/54571100/4891063
Vous devez vous connecter pour publier un commentaire.
J'ai enfin trouvé: le problème peut être résolu simplement en appelant la
mViewPager.setCurrentItem(position)
avec un paramètre supplémentaire àfalse
, qui est la lisse de défilement pour leViewPager
.Après cela, le défilement se fait sans aucun lissage et donc les animations ne seront pas visibles.
mViewPager.setCurrentItem(position, false);
setCurrentItem(int item)
utilisesmoothScroll true
(sauf sur la première page)Voici une autre solution:
Extrait De Code:
Par la mise en smoothScroll à faux, vous êtes de désactiver le défilement de l'animation.
ViewPager
quand il offre déjà à cette surcharge?setCurrentItem(int item)
utilisesmoothScroll true
(sauf sur la première page)J'étais à la recherche de la désactivation de l'animation de balayage même balayage par l'utilisateur
voici ma mise en œuvre
1-Remplacer
Viewpager
méthodeonInterceptTouchEvent
etonTouchEvent
2 - créez votre propre
GestureDetector
3 - détecter le mouvement de balayage et d'utiliser le
setCurrentItem(item, false)
ViewPager
le lorsque vous configurez le ViewPager définir la swipeListener