144 votes

Remplacement d'un fragment à un autre fragment à l'intérieur de l'activité du groupe

J'ai un fragment à l'intérieur d'une activité de groupe et je veux le remplacer par un autre fragment:

FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
SectionDescriptionFragment bdf = new SectionDescriptionFragment();
ft.replace(R.id.book_description_fragment, bdf);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();

Il fonctionne très bien quand il est fait comme un autre projet sans l'aide de l'activité de groupe, chaque chose fonctionne bien dans les journaux de chat que le contrôle passe à l'intérieur de getview(), mais aucune vue n'est visible, pas même une exception survient, je veux le livre de détails fragment à être remplacé par la section détail fragment.

Xml de livre détail fragment a id book_description_fragment et xml pour la description dans la section fragment a id section_description_fragment.

Le code ci-dessus est dans méthode onClick d'un article, je veux que lorsque l'utilisateur clique sur un élément de défilement horizontale, puis le fragment de changements.

263voto

Subin Sebastian Points 2387

Les Fragments qui sont codés en dur dans le format XML, ne peut pas être remplacé. Si vous devez remplacer un fragment à un autre, vous devez avoir ajouté de façon dynamique, tout d'abord.

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();

37voto

Sana Points 3743

Veuillez voir cette.

Android: ne peut pas remplacer un fragment à un autre

Vous pouvez seulement de remplacer une "dynamique ajouté fragment".

Donc, si vous souhaitez ajouter une dynamique fragment, voir cet exemple

http://notionink.wikidot.com/rajeshbabu

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X