【问题标题】:OnResume called multiple times inside fragmentOnResume 在片段内多次调用
【发布时间】:2015-08-22 14:10:58
【问题描述】:

我有 InnerFragment 包含 RecyclerView,在 MainFragment 内添加到 ViewPager。 当在滑动时创建 MainFragment 时 OnResume 被多次调用

  • 第一次:OnResume 在 MainFragment 中调用一次,在 InnerFragment 中调用一次
  • 2n 次:OnResume 在 MainFragment 中调用一次,在 InnerFragment 中调用两次
  • 第三次: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();

【问题讨论】:

    标签: android android-fragments android-viewpager onresume fragmentmanager


    【解决方案1】:

    添加片段时,使用replace()代替add()

    之前

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

    之后

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

    【讨论】:

    • 接受我自己的答案,因为它对我有用,并且可能对其他人也有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2014-09-11
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多