viewpager动态添加fragment
时间: 2023-07-29 09:14:56 浏览: 120
要动态添加 Fragment 到 ViewPager 中,需要使用 FragmentPagerAdapter 或 FragmentStatePagerAdapter。以下是添加 Fragment 的步骤:
1. 创建 FragmentPagerAdapter 或 FragmentStatePagerAdapter 的子类:
```
public class MyPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> mFragmentList = new ArrayList<>();
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment) {
mFragmentList.add(fragment);
notifyDataSetChanged();
}
}
```
在这个子类中,我们需要重写 getItem() 方法,返回指定位置的 Fragment 对象;重写 getCount() 方法,返回 Fragment 的数量;还需要添加一个 addFragment() 方法,用于添加 Fragment。
2. 创建 ViewPager 对象,并设置 Adapter:
```
ViewPager viewPager = findViewById(R.id.viewpager);
MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
```
3. 创建 Fragment 对象:
```
MyFragment fragment = new MyFragment();
```
4. 添加 Fragment 到 Adapter:
```
adapter.addFragment(fragment);
```
5. 刷新 Adapter:
```
adapter.notifyDataSetChanged();
```
这样就添加了一个 Fragment 到 ViewPager 中。如果需要替换 ViewPager 中的 Fragment,可以使用 setItem() 方法,方法参数是要替换的 Fragment 对象和位置。如果需要从 ViewPager 中移除 Fragment,可以使用 removeItem() 方法,方法参数是要移除的位置。
阅读全文