OnResume 在片段中多次调用
OnResume called multiple times inside fragment
我有 InnerFragment 包含 RecyclerView,在 MainFragment 里面,它被添加到 ViewPager。
多次调用 OnResume 时创建 MainFragment 时
- 第 1 次:OnResume 在 MainFragment 中调用一次,在 InnerFragment 中调用一次
- 2n 次:OnResume 在 MainFragment 中调用一次,在 InnerFragment 中调用两次
- 第 3 次:OnResume 在 MainFragment 中调用一次,在 InnerFragment 中调用三次
在ViewPager中添加MainFragment
//Assigning Adapter in ViewPager
mViewPager.setAdapter(new MyAdapter(getFragmentManager()));
//getItem inside MyAdaper
public Fragment getItem(int position){
return MainFragment.newInstance(position);
}
在 MainFragment 中添加 InnerFragment
getChildFragmentManager().beginTransaction().add(R.id.framelayoutID, InnerFragment.newInstance()).commit();
添加片段时,使用 replace() 而不是 add()
之前
getChildFragmentManager().beginTransaction().add(R.id.framelayoutID, InnerFragment.newInstance()).commit();
之后
getChildFragmentManager().beginTransaction().replace(R.id.framelayoutID, InnerFragment.newInstance()).commit();
我有 InnerFragment 包含 RecyclerView,在 MainFragment 里面,它被添加到 ViewPager。 多次调用 OnResume 时创建 MainFragment 时
- 第 1 次:OnResume 在 MainFragment 中调用一次,在 InnerFragment 中调用一次
- 2n 次:OnResume 在 MainFragment 中调用一次,在 InnerFragment 中调用两次
- 第 3 次:OnResume 在 MainFragment 中调用一次,在 InnerFragment 中调用三次
在ViewPager中添加MainFragment
//Assigning Adapter in ViewPager
mViewPager.setAdapter(new MyAdapter(getFragmentManager()));
//getItem inside MyAdaper
public Fragment getItem(int position){
return MainFragment.newInstance(position);
}
在 MainFragment 中添加 InnerFragment
getChildFragmentManager().beginTransaction().add(R.id.framelayoutID, InnerFragment.newInstance()).commit();
添加片段时,使用 replace() 而不是 add()
之前
getChildFragmentManager().beginTransaction().add(R.id.framelayoutID, InnerFragment.newInstance()).commit();
之后
getChildFragmentManager().beginTransaction().replace(R.id.framelayoutID, InnerFragment.newInstance()).commit();