viewpage里嵌套fragment如何实现
时间: 2023-06-19 08:03:21 浏览: 150
在ViewPage中嵌套Fragment有两种方式:
1. 使用FragmentPagerAdapter
使用FragmentPagerAdapter需要继承它实现一个适配器类,然后在适配器类中重写getItem和getCount方法来返回对应的Fragment和Fragment数量。具体实现如下:
```
public class MyAdapter extends FragmentPagerAdapter {
private List<Fragment> mFragments = new ArrayList<>();
private List<String> mFragmentTitles = new ArrayList<>();
public MyAdapter(FragmentManager fm) {
super(fm);
}
public void addFragment(Fragment fragment, String title) {
mFragments.add(fragment);
mFragmentTitles.add(title);
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitles.get(position);
}
}
```
然后在Activity或Fragment中使用ViewPager,并将适配器设置给ViewPager:
```
MyAdapter adapter = new MyAdapter(getChildFragmentManager());
adapter.addFragment(new FirstFragment(), "First");
adapter.addFragment(new SecondFragment(), "Second");
viewPager.setAdapter(adapter);
```
2. 使用FragmentStatePagerAdapter
使用FragmentStatePagerAdapter也需要继承它实现一个适配器类,然后在适配器类中重写getItem和getCount方法来返回对应的Fragment和Fragment数量。具体实现如下:
```
public class MyAdapter extends FragmentStatePagerAdapter {
private List<Fragment> mFragments = new ArrayList<>();
private List<String> mFragmentTitles = new ArrayList<>();
public MyAdapter(FragmentManager fm) {
super(fm);
}
public void addFragment(Fragment fragment, String title) {
mFragments.add(fragment);
mFragmentTitles.add(title);
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitles.get(position);
}
}
```
然后在Activity或Fragment中使用ViewPager,并将适配器设置给ViewPager:
```
MyAdapter adapter = new MyAdapter(getChildFragmentManager());
adapter.addFragment(new FirstFragment(), "First");
adapter.addFragment(new SecondFragment(), "Second");
viewPager.setAdapter(adapter);
```
阅读全文
相关推荐
















