3

je InnerFragment contenant RecyclerView, à l'intérieur MainFragment qui est ajouté à ViewPager. Lorsque MainFragment est créé en balayant onResume est appelée plusieurs foisonResume appelé plusieurs fois à l'intérieur fragment

  • 1ère fois: onResume appelé une fois dans MainFragment et une fois dans InnerFragment
  • temps 2n: onResume appelé une fois en MainFragment et deux fois dans InnerFragment
  • 3e fois : onResume appelé une fois dans MainFragment et Trois fois InnerFragment

Ajout MainFragment dans ViewPager

//Assigning Adapter in ViewPager 
mViewPager.setAdapter(new MyAdapter(getFragmentManager())); 
//getItem inside MyAdaper 
public Fragment getItem(int position){ 
    return MainFragment.newInstance(position); 
} 

Ajout InnerFragment dans MainFragment

getChildFragmentManager().beginTransaction().add(R.id.framelayoutID, InnerFragment.newInstance()).commit(); 

Répondre

8

lorsque fragment ajoutant, utiliser remplacer() au lieu de add()

avant

getChildFragmentManager().beginTransaction().add(R.id.framelayoutID, InnerFragment.newInstance()).commit(); 

après

getChildFragmentManager().beginTransaction().replace(R.id.framelayoutID, InnerFragment.newInstance()).commit(); 
+1

accepter ma réponse parce que cela a fonctionné pour moi et, peut être utile pour les autres. – touchchandra