相关疑难解决方法(0)

FragmentPagerAdapter未正确删除项目(片段)

我已经实现了FragmentPagerAdapter和使用a List<Fragment>来保存所有片段以供我ViewPager显示.在addItem()我只是添加一个实例化Fragment然后调用notifyDataSetChanged().我不确定这是否有必要.

我的问题只是......从片段1开始

[Fragment 1] 
Run Code Online (Sandbox Code Playgroud)

添加新的片段2

[Fragment 1] [Fragment 2]
Run Code Online (Sandbox Code Playgroud)

删除片段2

[Fragment 1]
Run Code Online (Sandbox Code Playgroud)

添加新的片段3

[Fragment 1] [Fragment 2]
Run Code Online (Sandbox Code Playgroud)

添加新片段时,一切看起来都很棒.删除片段然后添加新实例化的片段后,仍会显示旧片段.当我去.getClass.getName()它时,它给了我片段3的名字,但我仍然看到片段2.

我相信这可能是一个问题,instantiateItem()但我认为适配器是为我们处理.任何建议都会很棒.

适配器代码......

public class MyPagerAdapter extends FragmentPagerAdapter {
public final ArrayList<Fragment> screens2 = new ArrayList<Fragment>();


private Context context;

public MyPagerAdapter(FragmentManager fm, Context context) {
    super(fm);
    this.context = context;
}

public void removeType(String name){
    for(Fragment f: screens2){
        if(f.getClass().getName().contains(name)){ screens2.remove(f); return; }
    }
    this.notifyDataSetChanged();
}

public boolean addSt(String …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

43
推荐指数
2
解决办法
3万
查看次数