我已经实现了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)