Android vigueur Fragment de reconstruire Vue
J'ai une application simple qui dispose de deux fragments et quand en mode paysage, les deux fragments sont affichées côte à côte et dans le portrait que j'ai montrer Un Fragment et puis si ils sélectionner une option, démarrer une Activité qui illustre le Fragment B. Mon problème est quand je suis en mode Portrait et en montrant du Fragment B, si l'utilisateur sélectionne une option du menu, je veux actualiser ou le rafraîchissement de l'Affichage, qui est associé avec le Fragment B et ne peut pas comprendre comment faire ce travail. J'ai essayé la méthode getView et getLayoutInflater méthode, mais l'écran ne change pas parce que je pense que je suis entrain de créer un nouveau point de vue. J'ai aussi essayé d'obtenir une référence à Un Fragment de la pensée que je pourrais appeler sa routine de construire un nouveau fragment et remplacer le Fragment B, mais ne peut pas obtenir une référence à elle parce qu'elle n'est pas affichée. Ce que j'ai vraiment besoin de faire est juste de la force de la onCreateView méthode à appeler de nouveau pour gonfler le nouveau point de vue, mais j'ai essayé plusieurs méthodes pour essayer de le faire mais ne peut pas obtenir la onCreateView être appelé à nouveau. Des idées sur comment cela?
OriginalL'auteur Chris | 2011-10-17
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez effectuer une
FragmentTransaction
et l'utilisation de lareplace()
méthodeCela ne devrait pas être trop difficile à faire, mais la réponse dépendra de l'endroit où votre Menu se trouve (c'est à dire votre
onOptionsItemSelected()
de retour d'appel à l'intérieur de votre Activité parent ou est il en soit Fragment A/B?).Supposons que, pour des raisons de simplicité, votre menu de mise en œuvre et
onOptionsItemSelected()
est dans le parent de l'activité, et que vous souhaitez remodeler les fragments dans le cas où menu_option1 est choisi. Il ressemblerait à quelque chose comme ceci:Alternativement, si votre menu est un enfant de l'un de vos Fragments (qui doit l'être pour le plaisir de plus de code réutilisable), puis une méthode consiste à exiger que les Activités d'accueil à mettre en œuvre une interface définie par le Fragment, qui peut être utilisé comme un appel de retour.
Et dans le
onOptionsItemSelected()
de rappel à l'intérieur de votre fragment de classe, il vous suffit de faire un appel à cette méthode de rappel.Bien que cela sonne comme une bouchée, vous avez seulement besoin de faire quelques choses. Prétendre que c'est votre Fragment de classe
Puis dans l'Activité, vous devez voir quelque chose comme:
ce sera l'id du conteneur de ce fragment
OriginalL'auteur BMo
Dans
onOptionsItemSelected()
, de l'activité appeler une méthode sur le fragment qui provoque la mise à jour de ses widgets avec le nouveau contenu. Ou, de l'activité exécutez unFragmentTransaction
pour remplacer le fragment (si le fragment a été initialement mis en place par l'intermédiaire d'unFragmentTransaction
).OriginalL'auteur CommonsWare