viewpager动态删除fragment
时间: 2023-08-13 15:07:39 浏览: 128
ViewPage的动态删除
5星 · 资源好评率100%
要动态删除 ViewPager 中的 Fragment,需要执行以下步骤:
1. 创建一个 FragmentStatePagerAdapter 的子类,用于管理 ViewPager 中的 Fragment。
2. 在子类中实现 getItem() 方法,该方法返回要显示的 Fragment。
3. 在子类中实现 getCount() 方法,该方法返回 Fragment 的数量。
4. 在子类中实现 getItemPosition() 方法,该方法返回 Fragment 在 ViewPager 中的位置。
5. 在子类中创建一个 ArrayList,用于存储 ViewPager 中的 Fragment。
6. 在子类的构造函数中,将 ViewPager 中的 Fragment 添加到 ArrayList 中。
7. 在子类中创建一个方法,用于从 ArrayList 中删除 Fragment。
8. 在删除 Fragment 后,调用 notifyDataSetChanged() 方法更新 ViewPager。
以下是示例代码:
```java
public class MyPagerAdapter extends FragmentStatePagerAdapter {
private ArrayList<Fragment> fragments = new ArrayList<>();
public MyPagerAdapter(FragmentManager fm) {
super(fm);
fragments.add(new Fragment1());
fragments.add(new Fragment2());
fragments.add(new Fragment3());
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public int getItemPosition(Object object) {
int index = fragments.indexOf(object);
if (index == -1) {
return POSITION_NONE;
} else {
return index;
}
}
public void removeFragment(int position) {
fragments.remove(position);
notifyDataSetChanged();
}
}
```
在 Activity 或 Fragment 中,可以通过以下方式删除 ViewPager 中的 Fragment:
```java
MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
adapter.removeFragment(position);
```
其中,position 为要删除的 Fragment 在 ViewPager 中的位置。
阅读全文