目前看到的大部分教程都是ViewPager+Fragment实现的无限滑动效果,比较复杂。ViewPager2的出现给我们带来的极大的方便,要实现无限滑动效果也相对简单一些了。
实现无限滑动的原理和ViewPager的原理是一样的,相关原理可以借鉴。假设我们要对三个页面进行滑动,分别为fragment1,fragment2,fragment3,。我们就按顺序导入fragment3,fragment1,fragment2,fragment3,fragment1。
当页面跳转到第0个页面,也就是fragment3的时候,我们将页面自动改为第3个页面,fragment3。当页面跳转到第4个页面,也就是fragment1的时候,我们将页面自动改为第1个页面,fragment1。
//MyAdapter.java
public class MyAdapter extends FragmentStateAdapter {
List<Fragment> list = new ArrayList<>();
public EmergentAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle, List<Fragment> list){
super(fragmentManager,lifecycle);
this.list = list;
}
@NonNull
@Override
public Fragment createFragment(int position) {
return list.get(position);
}
@Overr