第一步:写几个全局变量来记录:
/**
* 记录滑动页面是否是最后一页
*/
private boolean isHomeLastPage = false;
private boolean isHomeDragPage = false;
第二步,在vp实现监听的onPageSelected()获取最后一个元素
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
Log.e("videoPosition位置", position + "");
//获取最后一页/position等于最后一个元素
isHomeLastPage = position == datas.size() - 1;
}
第三步,在vp实现监听的onPageScrollStateChanged()判断当前是否滑动状态,
@Override
public void onPageScrollStateChanged(int state) {
// 0:什么都没做 1:开始滑动 2:滑动结束 滚动监听
isHomeDragPage = state == ViewPager2.SCROLL_STATE_DRAGGING;
//判断最后一个就不加载了
}
第四步,在vp实现监听的onPageScrolled()1.
1.判断是否是最后一个元素
2.当前是否滑动状态,
3.positionOffsetPixels可偏移量为0
大功告成,已经做好vp滑动到最后一页的判断
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//判断最后一个元素并且滑动状态,还有可偏移量为0
Log.e("vp2CCC", "vp2CCC" + isHomeLastPage + " " + isHomeDragPage + " " + positionOffsetPixels);
if (isHomeLastPage && isHomeDragPage && positionOffsetPixels == 0) { //当前页是最后一页,并且是拖动状态,并且像素偏移量为0
Toast.makeText(getActivity(), "当前页是最后一页", Toast.LENGTH_SHORT).show();
} else {
}
}
有问题请加我的技术群解答:
qq群:637866565