0

En fait, je suis en train d'implémenter un TabLayout, donc dans MainActivity principal, je charge le TabFragment et dans le tabFragment (contient deux fragments) j'ai utilisé le ViewPager.gérer le fragment après le verrouillage manuel du téléphone dans View pager

Le problème est quand je suis sur le fragment deux dans TabLayout et après l'écran disparaît, il se déplace au fragment un (par défaut). Alors, comment puis-je aborder celui-ci

Voici le code TabFragment:

public class TabFragment extends Fragment { 


    public TabFragment() { 
     // Required empty public constructor 
    } 
    public static TabLayout tabLayout; 
    public static ViewPager viewPager; 
    public static int int_items = 2 ; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View x=inflater.inflate(R.layout.content_main_menu,null); 
     tabLayout=(TabLayout) x.findViewById(R.id.tabs); 
     viewPager =(ViewPager) x.findViewById(R.id.viewpager); 
     setupViewPager(viewPager); 
     //viewPager.setAdapter(new MyAdapter(getChildFragmentManager())); 
     viewPager.setOffscreenPageLimit(1); 
     tabLayout.post(new Runnable() { 
      @Override 
      public void run() { 
       tabLayout.setupWithViewPager(viewPager); 
      } 
     }); 
    return x; 
    } 


    private void setupViewPager(ViewPager viewPager) { 
     MyAdapter adapter = new MyAdapter(getChildFragmentManager()); 
     adapter.addFragment(new HomeFragment(), "Fragment One"); 
     adapter.addFragment(new Offers(), "fragment Two"); 

     viewPager.setAdapter(adapter); 
    } 
    class MyAdapter extends FragmentPagerAdapter{ 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 
     public MyAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 
     public void addFragment(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 
    } 
+0

Que voulez-vous dire par "après que l'écran s'éteigne"? – santalu

+0

@techDigi pouvez-vous s'il vous plaît signaler votre activité principale onResume() code. –

+0

i Override simplement méthode onResume() et appeler super – techDigi

Répondre

0

Utilisation FragmentStatePagerAdapter au lieu de FragmentPagerAdapter. Lire la documentation here. FragmentStatePagerAdapter ne stocke que les fragments savedInstanceState et détruit tous les fragments lorsqu'ils perdent le focus.

+0

toujours le même problème – techDigi

+0

utilisez-vous getChildFragmentManager() à coup sûr? essayer avec getFragmentManager() – droidev

+0

oui j'ai essayé les deux mais le même problème – techDigi