Empêcher la fermeture par le bouton de retour dans les formes de xamarin sur android
Je veux éviter la fermeture de l'application en appuyant sur le bouton de retour dans xamarin forms sur android.
Je veux, que vous pouvez parcourir avec le bouton de retour dans l'application (ce qui fonctionne), mais ne veulent pas quitter, lorsque la première page dans la pile de navigation est atteint.
J'ai essayé d'utiliser le OnSleep événement dans xamarin forms, mais là je ne peux pas annuler la sortie.
J'ai aussi essayé d'attraper le bouton de retour dans android:
public override void OnBackPressed()
{
//base.OnBackPressed();
}
Mais lors de l'utilisation de xamarin forms, je ne sais pas qui est présentement à l'affiche. Donc je ne sais pas si la navigation est autorisée ou pas
source d'informationauteur Chris
Vous devez vous connecter pour publier un commentaire.
Il fonctionne avec de l'évaluation de la NavigationStack (lorsque vous utilisez NavigationPage).
Dans mon Activité, je remplace la OnBackPressed
Dans mon xamarin forms application (App.Exemple (c'est un singleton)), je vais évaluer la NavigationStack de la Page en cours comme ça.
Quand il n'y a qu'une seule page à gauche dans la NavigationStack je ne vais pas appeler de base.OnBackPressed, de sorte que je ne vais pas fermer l'Application.
![test]
Et voici ce que le code pourrait ressembler à une Xamarin Forms MasterDetail scénario de page...
Juste donner un vide d'appeler dans la page où tu veux éviter, comme
Cela permettra d'éviter que le bouton de retour en XF-Droid.
Voici une solution qui fonctionne sur Android.
Introduire un compteur dans la classe d'application et de l'incrémenter à chaque
OnStart
et décrémenter à chaqueOnStop
de cette façon, lorsque le compteur est 1 vous saurez que vous êtes à votre dernière activité.Inutile de dire, d'utiliser une base de mise en œuvre des activités, de sorte que vous n'avez pas à copier-passé chaudière plaque de code.
La solution proposée peut fonctionner bien, mais je n'aime pas la "propriété statique de l'exposition" pour résoudre les problèmes. De plus, je n'aime pas l'utilisation de "propriétés que les méthodes" des solutions, surtout quand beaucoup de logique est impliqué.
Le principal problème ici comment nous pouvons nous occuper de la OnBackButton() la méthode de notre Xamarin.Les formulaires.La classe d'Application.
Ce sujet de faire la même chose d'une façon plus élégante?
Abord, vous avez besoin d'étendre les Xamarin.Les formulaires.La classe d'Application comme ceci:
Votre Application mise en œuvre va maintenant utiliser cette classe comme classe de base. N'oubliez pas de modifier votre code xaml et votre xaml.cs en conséquence:
Dans votre Application.cs de la mise en œuvre, vous pouvez maintenant remplacer le OnBackButton() la méthode.
Alors vous avez besoin de changer un peu de votre classe d'Activité mise en œuvre.