第一步:寫幾個全域變數來記錄:
/**
* 記錄滑動頁面是否是最后一頁
*/
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 {
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/287405.html
標籤:其他
