OnResume在片段内多次调用

tou*_*dra 3 android onresume android-fragments android-viewpager fragmentmanager

我在MainFragment中包含了包含RecyclerView的InnerFragment,它被添加到ViewPager中.创建MainFragment时,多次调用滑动OnResume

  • 第一次:OnResume在MainFragment中调用一次,在OnceFragment中调用一次
  • 2n时间:OnResume在MainFragment中调用一次,在InnerFragment中调用两次
  • 第3次:OnResume在MainFragment中调用一次,在InnerFragment中调用Thrice

在ViewPager中添加MainFragment

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

在MainFragment中添加InnerFragment

getChildFragmentManager().beginTransaction().add(R.id.framelayoutID, InnerFragment.newInstance()).commit();
Run Code Online (Sandbox Code Playgroud)

tou*_*dra 11

添加片段时,使用replace()而不是add()

之前

getChildFragmentManager().beginTransaction().add(R.id.framelayoutID, InnerFragment.newInstance()).commit();
Run Code Online (Sandbox Code Playgroud)

getChildFragmentManager().beginTransaction().replace(R.id.framelayoutID, InnerFragment.newInstance()).commit();
Run Code Online (Sandbox Code Playgroud)