0
votes

Naviguer d'un fragment à un autre fragment

Je passe les deux derniers jours de surfer sur le Web à la recherche d'une solution pour le prochain problème: J'ai une classe d'adaptateur dans un onglet dans la viewpager, j'essaie d'appeler un fragment lors de l'événement de clic via Fragment Manager. Lorsque le fragment est appeler, tout va bien, mais lorsque j'essaie de revenir à l'onglet précédent dans la dernière position n'est pas affichée, au lieu de cela, l'activité principale est montrée.

dans l'adaptateur: P>

getFragmentManager().popBackStackImmediate();


1 commentaires

Veuillez partager du code de sorte que nous ayons une meilleure idée de ce que vous avez tenté et de ce qui pourrait être faux.


4 Réponses :


0
votes

Il semble que les fragments ne soient pas ajoutés à Backstack . En supposant que vous utilisiez FragmentTransaction, ajoutez cette ligne de code avec l'autre code pour échanger des fragments: xxx


0 commentaires

0
votes

Vous voulez dire, comment charger un fragment précédent au lieu d'une activité? Si tel est votre condition, alors suivez la méthode ONBackPressed (), si vous ajoutez un fragment dans la pile arrière:

onBackPressed() {
     super.onBackPressed();
     getActivity().getFragmentManager().popBackStack();
}


0 commentaires

0
votes

OS Android fournit une fonction de pile arrière pour l'activité, elle fournit également une fonction de pile de retour pour fragmenter. Si vous ajoutez un fragment dans la pile arrière, lorsque vous appuyez sur le menu arrière de l'appareil Android, vous pouvez trouver le fragment enregistré dans la fenêtre de pile de retour. Jusqu'à ce que tous les fragments sauvegardés dans la fenêtre contextuelle de pile arrière, l'activité quitte.

fragmentTransaction.addToBackStack(true);


0 commentaires

1
votes

Si vous utilisez ViewPager à l'intérieur du fragment, utilisez Fragment's ChildrfagmentManager au lieu de FragmentManager.

Classe de fragment: P>

public class MyPagerAdapter extends FragmentPagerAdapter {
        private static int NUM_ITEMS = 3;

        public MyPagerAdapter(FragmentManager fragmentManager) {
            super(fragmentManager);
        }

        // Returns total number of pages
        @Override
        public int getCount() {
            return NUM_ITEMS;
        }

        // Returns the fragment to display for that page
        @Override
        public Fragment getItem(int position) {
            switch (position) {
            case 0: // Fragment # 0 - This will show FirstFragment
                return FirstFragment.newInstance(0, "Page # 1");
            case 1: // Fragment # 0 - This will show FirstFragment different title
                return FirstFragment.newInstance(1, "Page # 2");
            case 2: // Fragment # 1 - This will show SecondFragment
                return SecondFragment.newInstance(2, "Page # 3");
            default:
                return null;
            }
        }

        // Returns the page title for the top indicator
        @Override
        public CharSequence getPageTitle(int position) {
            return "Page " + position;
        }

    }


0 commentaires