J'ai trouvé tellement de questions similaires et tellement de réponses différentes, mais aucun d'entre eux m'a aidé. Je vais essayer de poser une question claire pour obtenir une réponse claire si c'est possible.Comment remplacer fragment de ViewPager avec un nouveau
J'ai donc une activité qui a un ViewPager avec FragmentStatePagerAdapter contenant (pour l'instant) un seul fragment (HomeScreenFragment).
Inside HomeScreenFragment J'ai un RecyclerView avec une liste de plusieurs types d'icônes différentes qui devraient ouvrir un fragment différent pour chaque clic d'élément.
HomeScreenFragment a un FrameLayout en tant que mise en page racine avec le nom d'identifiant "conteneur". Ceci est la méthode que je vous appelle pour remplacer HomeScreenFragment avec MainTypesFragment dans ce cas:
private void openAllTypesFragment() {
MainTypesFragment fragment = new MainTypesFragment();
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, fragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.addToBackStack(HomeScreenFragment.class.getName());
transaction.commit();
eventBus.post(new Event(null, Event.EVENT_FRAGMENT));
}
Depuis FragmentStatePagerAdapter est initialisé dans MainActivity, je vous envoie un événement qui va attraper MainActivity et appeler adapter.notifyDataSetChanged();
En procédant ainsi, rien ne se passe .. J'ai essayé avec getChildFragmentManager() au lieu de getActivity(). GetSupportFragmentManager() et dans ce cas, fragment précédent (HomeScreenFragment) est visible sous un nouveau (MainTypesFragment) ..
Toutes les idées que je fais mal ici?
vous voulez remplacer le fragment précédent ou vous voulez juste ouvrir un nouveau fragment au-dessus de l'ancien? –
Je veux avoir 2 fragments à l'intérieur viewpager (HomeScreenFragment) qui peut être remplacé par plusieurs fragments possibles, selon le type de clic RecyclerView élément et un fragment qui est toujours là comme un second fragment dans viewpager – user8789149
Si je comprends bien, vous avez besoin séparé piles de fragments pour chaque page? Comme vous cliquez sur la page 1 liste élément 1 et apparaîtra nouveau fragment au-dessus de la liste sur la page1? –