J'utilise le framework MvvmCross pour construire une application multiplateforme (iOS, Android, WP7). J'essaye actuellement de manipuler le bouton arrière pressé sur Android d'une activité TabHost. L'activité TabHost a été démarrée à partir d'une autre activité (qui ne figure pas dans la sélection de l'onglet) et je souhaite que le bouton de retour ferme l'application. Cependant, lorsque j'appuie sur le bouton précédent, je retourne à l'écran précédent.MonoDroid MVVMCross bouton retour appuyé sur un TabHost
Le 'NoHistory = "true"' ne semble pas fonctionner dans TabHost.
Je suis en train de manipuler mon bouton arrière dans la vue comme ci-dessous mais je ne suis pas sûr de ce qui peut être appelé dans le ViewModel pour fermer l'application.
public override bool OnKeyDown(Android.Views.Keycode keyCode, Android.Views.KeyEvent e)
{
if (keyCode == Keycode.Back)
{
return this.ViewModel.CloseThisApplication();
}
return base.OnKeyDown(keyCode, e);
}
Existe-t-il des méthodes qui peuvent être appelées pour fermer l'application? Ou avez-vous une meilleure idée de la façon dont cela peut être géré? Idéalement, la méthode pourrait être répliquée sur les trois plates-formes précitées.
Merci à l'avance
C'est grand, bien que dans certaines situations, je vais devoir rattraper le bouton arrière et surcharger sa méthode à un IMvxCommand. Y at-il un moyen de lier le bouton de retour dans le XML à l'une de ces commandes? Plutôt que de l'attraper moi-même et d'appeler une méthode dans le ViewModel? – Jake
J'ai essayé le ["Comment ajouter un ViewModel invisible à la pile de navigation dans MvvmCross"] (http://stackoverflow.com/questions/10246013/how-to-add-an-invisible-viewmodel-to-the-navigation -stack-in-mvvmcross) mais ça ne me permet pas d'aller à la page précédente. – Jake
Je suis sûr que vous pourriez ajouter quelque chose, mais on dirait que c'est quelque chose qui devrait être manipulé dans le codebehind – Stuart