android的ViewPager滑动判断当前停留页是否是最后一页

第一步:写几个全局变量来记录:

   /**
     * 记录滑动页面是否是最后一页
     */
    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

猜你喜欢

转载自blog.csdn.net/ShiXinXin_Harbour/article/details/117851667