Question

Ce qui, à votre avis, est le meilleur moyen de créer une application semblable à un assistant (l'utilisateur peut naviguer entre les écrans à l'aide des boutons Suivant et Précédent, et chaque écran doit enregistrer des données d'état) sur la plateforme Android.

Je peux principalement penser en deux approches:

  1. Avoir une activité + une vue pour chaque écran, puis je fais basculer l'écran en appelant chaque activité. Ce qui est intéressant, c’est que je peux utiliser le bouton Précédent du système comme gestionnaire de dos et que je n’ai pas à m'en occuper moi-même. Chaque activité enregistre son propre état.

  2. Avec une activité et plusieurs vues, et ce que je change de vue à chaque changement d’écran, cela me permet de réutiliser plus de code, mais rend la sauvegarde des états un désordre.

Qu'en penses-tu? Quelle est la meilleure façon de faire cela sur Android?

Était-ce utile?

La solution

Je suggère d'aller avec 2 car cela correspond à l'objectif d'activités et de points de vue. Dans ce cas, il est facile de sauvegarder l'état. Si vous utilisez le modèle MVC, vous pouvez simplement avoir un objet de modèle qui est transmis aux vues. Chaque vue aura des parties du modèle qu’elle peut lire / écrire. Où que vous soyez, le modèle doit toujours avoir l'état actuel. Si vous êtes disposé, enregistrez simplement le modèle. La restauration fonctionne automatiquement puisque vous avez déjà lu le modèle lorsque vous affichez chaque page.

Autres conseils

J'ai développé une bibliothèque Android légère, construite sur le ViewPager d'Android, qui peut être utilisée pour créer des activités similaires à celles d'un assistant. Découvrez-le: WizarDroid .

Je suis parti avec la première approche car cela semble plus naturel. Une autre application utilise ViewFlipper pour changer de vue, mais c'est loin d'être un assistant.

Je pense que 2 est mieux. Placez chaque " page " dans une vue, puis alternez simplement entre les montrer et les cacher. Cela rend trivial de faire de belles transitions. Quel état envisagez-vous de maintenir? Le seul qui ne fonctionne pas automatiquement serait le focus et je pense que vous voulez probablement le réinitialiser à chaque fois que vous changez de page. Il est également trivial de revenir si vous pensez que c'est le bon comportement pour votre application.

Avec 1, vous pouvez réutiliser la quasi-totalité de votre code (définissez simplement votre propre classe WizardBase), mais je pense que les activités sont beaucoup plus lentes à démarrer (et nécessitent plus de mémoire) que de passer d'une vue à l'autre.

Il y a 9 ans, il s'agissait manifestement d'une combinaison de poissons très différente - mais je pense que la meilleure façon de procéder consiste à utiliser Fragments.

Créez un fragment pour chaque "page" de l'assistant, lui permettant de gérer son propre cycle de vie et son propre état.

Modifiez la page à l'intérieur de chaque fragment à l'aide de Fragment.getFragmentManager ( ) - renvoie le FragmentManager de l’activité parent, permettant ainsi au fragment de se remplacer lui-même.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top