J'ai commencé à développer des applications Android l'autre jour, et tout en étudiant en regardant le texte, J'avais une question sur la façon d'utiliser la méthode addToBackStack, je vais donc l'écrire.
Au fur et à mesure du fonctionnement de l'application, lorsque la liste d'éléments est sélectionnée, l'écran passe à l'écran de détails de l'élément sélectionné, Lorsque vous appuyez sur le bouton Retour, vous revenez à la liste.
Utilisez la méthode addToBackStack pour enregistrer l'état de la destination de retour. L'utilisation de addToBackStack décrite dans le texte est la suivante.
//Remplacer la liste en détail
fragmentTransaction.replace(R.id.fragment1,myFragment2);
//Enregistrer la transaction d'origine pour traitement lorsque vous appuyez sur le bouton de retour
fragmentTransaction.addToBackStack(null);
Les deux points suivants m'ont fait me demander quand j'ai vu ce code.
Le contenu de l'enquête sur les deux points ci-dessus est résumé ci-dessous.
En regardant le code ci-dessus, Après avoir remplacé le fragment par la méthode fragmentTransaction.replace L'état est enregistré par la méthode fragmentTransaction.addToBackStack.
La question ici est La question est que si vous enregistrez après l'échange, vous ne pourrez peut-être pas enregistrer l'état de la destination de retour. En d'autres termes Remplacement du fragment ⇒ enregistrer ne pas, Enregistrer ⇒ Remplacer le fragment J'ai pensé que ça devrait l'être.
Donc, si vous regardez la description de addToBackStack dans les développeurs Android,
Add this transaction to the back stack. This means that the transaction will be remembered after it is committed, and will reverse its operation when later popped off the stack.
À peu près traduit, Enregistrez la transaction dans la pile. Il est enregistré sur la pile après sa validation. Il sera restauré lorsqu'il sera sorti de la pile.
Malheureusement, je n'ai pas eu la réponse. Après cela, j'ai cherché des blogs, etc., mais je n'ai pas pu obtenir de réponse claire. Après cela, lorsque je faisais des recherches sur la modification de la disposition de l'écran sur les tablettes et les smartphones, J'ai trouvé la réponse. Sur la page de description des fragments (https://developer.android.com/guide/components/fragments.html?hl=ja) J'ai trouvé la description suivante.
Si vous apportez plusieurs modifications à une transaction (comme add () ou remove ()) et appelez addToBackStack (), toutes les modifications appliquées avant d'appeler commit () sont placées dans la backstack en une seule transaction. Une fois ajouté, sélectionnez le bouton Retour et tout reviendra en même temps.
En d'autres termes, la méthode addToBackStack enregistre les différences. Si vous souhaitez enregistrer la différence, remplacez Fragment ⇒ Save.
Il s'agit simplement de la question: "Que signifie avoir un argument NULL?"
Cette question est expliquée par Android-Note (http://android-note.open-memo.net/sub/fragment__fragment_stack.html) Il y avait la description suivante dans.
Si vous n'avez pas plusieurs fragments à enregistrer sur la pile et que vous ne souhaitez enregistrer que le fragment actuel, passez null comme suit:
Je vois.
c'est tout.
Dépôt https://github.com/tagfa/MyGUIFragmentDynamic02 Où utiliser la méthode addToBackStack https://github.com/tagfa/MyGUIFragmentDynamic02/blob/master/app/src/main/java/com/example/tag/myguifragmentdynamic02/MainActivity.java
Recommended Posts