viewpager滑动最后一页再次拖拽刷新

来源:互联网 发布:校园异术超能小说知乎 编辑:程序博客网 时间:2024/05/22 16:04

直接看代码


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;            }        });    }

阅读全文
0 0
原创粉丝点击