直接看代码
private EdgeEffectCompat leftEdge; private EdgeEffectCompat rightEdge;
//初始化控件 private void initView() { mViewPager = (ViewPager) mCengCheView.findViewById(R.id.tab_viewpager); //获取viewpager滑动到最后一页 和第一页的动态 try { Field leftEdgeField = mViewPager.getClass().getDeclaredField("mLeftEdge"); Field rightEdgeField = mViewPager.getClass().getDeclaredField("mRightEdge"); if (leftEdgeField != null && rightEdgeField != null) { leftEdgeField.setAccessible(true); rightEdgeField.setAccessible(true); leftEdge = (EdgeEffectCompat) leftEdgeField.get(mViewPager); rightEdge = (EdgeEffectCompat) rightEdgeField.get(mViewPager); } } catch (Exception e) { e.printStackTrace(); } mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { Log.i(TAG, position + "==onPageSelected="); } @Override public void onPageScrollStateChanged(int state) { if(rightEdge!=null&&!rightEdge.isFinished()){//到了最后一张并且还继续拖动,出现蓝色限制边条了 ToastUtil.show(getActivity(),"没有更多数据了"); }else if(leftEdge!=null&&!leftEdge.isFinished()){//第一条数据再次刷新 // getAllinfo(TYPE,PAGE); } } }); //设置viewpager的点击事件 mViewPager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: startX = event.getX(); break; case MotionEvent.ACTION_UP: endX = event.getX(); //根据滑动的距离来切换界面 if (list.size() == allStrokeBean.getTotal()) { } else { if (currentPage == list.size() - 1) { ++PAGE; //请求数据 getAllinfo(); } } break; } return false; } }); }