Comment gérer bouton de retour à l'aide de la vue pager?
Je vais avoir deux Frag fragments A et Frag B qui sont rendus à l'aide de la vue de radiomessagerie .
Si l'utilisateur n'a passé de A à B puis appuie sur bouton de retour(en B), alors l'utilisateur doit aller à Un au lieu de venir hors de la vue du pager . Comment pouvons-nous y parvenir ?
L'ajout de la transaction à la backstack ne semble pas aider .
Grâce
OriginalL'auteur Preethi | 2012-11-01
Vous devez vous connecter pour publier un commentaire.
Vous devez remplacer la
onKeyDown()
méthode dans leActivity
.Cela permettra de capturer le bouton "retour" de la conférence de presse et d'envoyer l'utilisateur vers le premier élément de la ViewPager.
Il est également ViewPager#getCurrentItem() qui peut être utilisé pour retourner uniquement si l'utilisateur dans le lecteur. Une mise en œuvre comme ceci:
serait de les envoyer à l'utilisateur de retourner à la page précédente que si l'utilisateur est sur la page suivante. Autre chose, il va enregistrer le "retour" normalement " et l'utilisateur sortie comme prévu.
Vous souhaitez peut-être le cas dans lequel l'utilisateur va revenir à la page précédente (en supposant que vous avez plus de deux pages). Dans ce cas, vous souhaitez mettre en œuvre la ViewPager.OnPageChangeListener() et enregistrer la position de tous les temps
onPageSelected(int position)
est appelé. Si vous les mettre en œuvre dans une pile, alors vous pouvez leur pop à chaque fois que l'utilisateur appuie sur "retour". Une fois que la pile est vide, la sortie de l'application.MODIFIER
Comme l'a si bien dit dans les commentaires par Jade Byfield, un peu plus facile façon de le faire serait d'utiliser
onBackPressed()
dans l'Activité. Cela ne fonctionnera que dans l'API de niveau 5+.À l'aide de onKeyDown() fonctionne sur toutes les plate-forme de l'API de niveau 1+. Aussi, à moins que j'ai été en utilisant ce mal tout le long, onBackPressed n'empêchera pas l'Activité de sauté de la pile. Si vous retournez
true
dansonKeyDown()
, ce sera la seule chose qui arrive et que l'événement va s'arrêter en cascade.Attendre. Juste eu un cerveau de vidage. Oui. Il peut utiliser onBackPressed() si il veut cible API 5+. Il suffit de ne pas appeler la
super.onBackPressed()
sauf si vous êtes absolument sûr que vous voulez quitter.OriginalL'auteur DeeV
Sur l'Android Docs page
https://developer.android.com/training/animation/screen-slide.html#viewpager
J'ai trouvé un exemple de manipulation
ViewPager
coulissantes et il y a une méthodeCeci permet de sélectionner la page précédente ou de quitter l'activité.
OriginalL'auteur mortalis
Je pense que la meilleure approche serait de déléguer la touche retour de la manipulation à l'fragments. J'ai utilisé un CustomFragment qui prend en charge une méthode pour gérer la touche retour. Tous les Fragments seront s'étendant à partir de cette CustomFragment.
Activité peut déléguer la backKey traitement actuel Fragment. Fragments pouvez effectuer les actions nécessaires à leur mise en œuvre respective de handleBackKey méthode. La méthode peut retourner true pour indiquer l'activité de ne pas traiter la touche retour. Pour aller de l'avant avec défaut de retour de l'action-clé au niveau d'Activité, la méthode peut retourner false.
OriginalL'auteur DevadasTV