FragmentPagerAdapter is not removing items (Fragments) correctly

前端 未结 9 1389
别跟我提以往
别跟我提以往 2021-01-30 01:30

I have implemented the FragmentPagerAdapter and and using a List to hold all fragments for my ViewPager to display. On

9条回答
  •  一个人的身影
    2021-01-30 02:03

    I got same problem,and my solution was overring the method "destroyItem" as following.

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        FragmentManager manager = ((Fragment)object).getFragmentManager();
        FragmentTransaction trans = manager.beginTransaction();
        trans.remove((Fragment)object);
        trans.commit();
    }
    

    It's work for me,does anybody have another solutions?

    Updated:

    I found those code made Fragment removed unnecessary,so I added a condition to avoid it.

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        if (position >= getCount()) {
            FragmentManager manager = ((Fragment) object).getFragmentManager();
            FragmentTransaction trans = manager.beginTransaction();
            trans.remove((Fragment) object);
            trans.commit();
        }
    }
    

提交回复
热议问题