Indicate after swiping the last page in ViewPager

情到浓时终转凉″ 提交于 2020-01-01 15:59:10

问题


I have created a view pager with circle page indicator. Its working fine. Here is my new requirement : When i'am in last/first page and try to swipe for next/previous page, my screen should move at least 30% towards the swiped direction and come back to its original position as there are no more pages to navigate? Of course i have page indicators at top which tells where am i in available pages. I hope my requirement is clear. How can i achieve it ? Please help me. Thanks in advance.


回答1:


This is automatic. The OS has built in indicators to tell the user the views can't be swiped any further. The OS will display a glow on the side of the screen, and the user can't pull further.

Not sure if you can create your own unique UI to handle this - the OS does provide a indicator out of the box.




回答2:


ViewPager.OnPageChangeListener pagerListener = new ViewPager.OnPageChangeListener() {
        boolean lastPageChange = false;

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels){
            int lastIdx = mPgScreenAdapter.getCount() - 1;

            Log.d(TAG, "pos:" + position);
            if(lastPageChange && position == lastIdx)
                PPIntent.changeScene(curAct, new Intent(curAct, LoginActivity.class), true);
        }
        @Override
        public void onPageSelected( int i) {
            pgText.setCurrentItem(i/2);
        }
        @Override
        public void onPageScrollStateChanged(int state) {
            int lastIdx = mPgScreenAdapter.getCount() - 1;

            int curItem = pgScreen.getCurrentItem();
            if(curItem==lastIdx /*&& lastPos==lastIdx*/  && state==1)   lastPageChange = true;
            else                                                         lastPageChange = false;
        }
    };


来源:https://stackoverflow.com/questions/13011815/indicate-after-swiping-the-last-page-in-viewpager

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!