viewpager在最后一页滑动之后,跳转到主页面

本文介绍如何在viewpager达到最后一页时,通过监听和触摸事件,实现在用户向左滑动后跳转到主页面。详细讲解了addOnPageChangeListener和setOnTouchListener的使用,并提供了GuideActivity的完整代码以及动画资源slide_in_left.xml和slide_in_right.xml的相关效果。
摘要由CSDN通过智能技术生成

viewpager在最后一页滑动之后,跳转到主页面

思路

主要有是两个监听,
一是addOnPageChangeListener();二是setOnTouchListener();

addOnPageChangeListener()主要是为了获取position(滑动到了第几页)

setOnTouchListener()主要是判断在最后一页中是否向左滑动了,然后进入主页

主要功能代码

addOnPageChangeListener();

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                currentItem = position;//获取位置,即第几页
                Log.i("Guide","监听改变"+position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

setOnTouchListener();

viewPager.setOnTouchListener(new View.OnTouchListener() {
            float startX;
            float startY;//没有用到
            float endX;
            float endY;//没有用到
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        startX=event.getX();
                        startY=event.getY();
                        break;
                    case MotionEvent.ACTION_UP:
                        endX=event.getX();
                        endY=event.getY();
                     WindowManager windowManager= (WindowManager)                                   getApplicationContext().getSystemService(Context.WINDOW_SERVICE);

                        //获取屏幕的宽度
                 Point size = new Point();
                 windowManager.getDefaultDisplay().getSize(size);
                        int width=size.x;

 //首先要确定的是,是否到了最后一页,然后判断是否向左滑动,并且滑动距离是否符合,我这里的判断距离是屏幕宽度的4分之一(这里可以适当控制)
if(currentItem==(i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值