viewPager的OnPageChangeListener监听器的方法调用顺序

mviewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
          Log.d("测试代码", "onPageScrolled滑动中" + position);
         }

    @Override
    public void onPageSelected(int position) {
        Log.d("测试代码", "onPageSelected选中了" + position);
      
    }

    @Override
    public void onPageScrollStateChanged(int state) {

        if (state == ViewPager.SCROLL_STATE_DRAGGING) {
            //正在滑动   pager处于正在拖拽中

            Log.d("测试代码", "onPageScrollStateChanged=======正在滑动" + "SCROLL_STATE_DRAGGING");

        } else if (state == ViewPager.SCROLL_STATE_SETTLING) {
            //pager正在自动沉降,相当于松手后,pager恢复到一个完整pager的过程
            Log.d("测试代码", "onPageScrollStateChanged=======自动沉降" + "SCROLL_STATE_SETTLING");

        } else if (state == ViewPager.SCROLL_STATE_IDLE) {
            //空闲状态  pager处于空闲状态
            Log.d("测试代码", "onPageScrollStateChanged=======空闲状态" + "SCROLL_STATE_IDLE");
        }

    }
});

Log日志打印如下

09-14 16:02:18.577  13543-13543/com.football.app D/测试代码﹕ onPageScrollStateChanged=======正在滑动SCROLL_STATE_DRAGGING
09-14 16:02:18.577  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.591  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.607  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.615  13543-13543/com.football.app D/测试代码﹕ onPageScrollStateChanged=======自动沉降SCROLL_STATE_SETTLING
09-14 16:02:18.615  13543-13543/com.football.app D/测试代码﹕ onPageSelected1
09-14 16:02:18.624  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.641  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.658  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.675  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.691  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.709  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.726  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.743  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.760  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.777  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.794  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.811  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.828  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中0
09-14 16:02:18.845  13543-13543/com.football.app D/测试代码﹕ onPageScrolled滑动中1
09-14 16:02:18.946  13543-13543/com.football.app D/测试代码﹕ onPageScrollStateChanged=======空闲状态SCROLL_STATE_IDLE

通过日志 得出来  ViewPager滑动的时候  回调的方法顺序为

  1. onPageScrollStateChanged()// state == ViewPager.SCROLL_STATE_DRAGGING  正在滑动状态
  2. onPageScrolled()  //滑动状态
  3. onPageScrollStateChanged() // state ==SCROLL_STATE_SETTLING  自动沉降状态
  4. onPageSelected() // 选中状态
  5. onPageScrolled()  //滑动状态
  6. onPageScrollStateChanged()  //state==SCROLL_STATE_IDLE   空闲状态  滑动结束
时间: 2024-10-10 14:55:04

viewPager的OnPageChangeListener监听器的方法调用顺序的相关文章

AsyncTask内的各个方法调用顺序

|- AsyncTask内的各个方法调用顺序:|- 首先,用户调用execute方法,启动AsyncTask .然后在execute方法中:|- 首先调用onPreExecute方法,执行初始化操作.|- 然后从线程池中取出若干个空闲的线程,并使用该线程调用doInBackground方法,执行耗时的操作,如文件下载等.|- 提示:调用execute方法时设置的参数会被直接传递给doInBackground方法.|- 当doInBackground方法执行完毕后,onPostExecute方法将

jquery更改ready方法调用顺序,在ready之后执行Js代码

*/--> jquery更改ready方法调用顺序,在ready之后执行Js代码 Table of Contents 问题描述 在所有的ready方法之后执行上面的方法 重写$.fn.ready方法 查看$.fn.ready的源码定义 修改自己的$.fn.ready 闭包,增加安全性 问题描述 我想要控制Input,回车不提交表单,思路如下: $(function(){ $("form input").on("keypress",function(event)

转:UIViewController中各方法调用顺序及功能详解

UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, viewWillAppear, viewDidAppear, viewWillLayoutSubviews,viewDidLayoutSubviews,viewWillDisappear, viewDidDisappear方法,按照调用顺序说明如下: 调试日志: 1 2 3 4 5 6 7 8 9 2013-07-14 12:15:49.048 VCTes

UIViewController中各方法调用顺序及功能详解

UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, viewWillAppear, viewDidAppear, viewWillLayoutSubviews,viewDidLayoutSubviews,viewWillDisappear, viewDidDisappear方法,按照调用顺序说明如下: 调试日志: 1 2 3 4 5 6 7 8 9 2013-07-14 12:15:49.048 VCTes

(转)UIViewController中各方法调用顺序及功能详解

目录(?)[-] 1 initWithNibNamebundle 2 loadView 3 viewDidLoad 4 viewWillAppear 5 viewDidAppear 6 viewWillLayoutSubviews 7 viewDidLayoutSubviews 8 viewWillDisappear 9 viewDidDisappear 10 viewWillUnload 11 viewDidUnload UIViewController中loadView, viewDidLo

自定义控件的初次建立的时候方法调用顺序

package com.football.app.view; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.Button; /**  * 

UIViewController的生命周期及方法调用顺序

ViewController解析 UIViewController是iOS顶层视图的载体及控制器,用户与程序界面的交互都是由UIViewController来控制的,UIViewController管理UIView的生命周期及资源的加载与释放. UIView与UIWindow共同展示了应用程序的用户界面.可以将UIView理解成画布,UIWindow理解成画框.这两个类的继承关系是这样的: NSObject — UIResponder — UIView — UIWindow  (UIWindow

python多重继承的属性和方法调用顺序问题和对迭代器的初步理解

推荐阅读:https://www.cnblogs.com/bigb/p/11650707.html 计算机学习的一个好办法就是自己将代码跑一遍,了解代码的运作顺序和原理(主要弄懂 函数作用,传入参数,返回值) 见代码: class A(object): def __init__(self): print('A') super(A, self).__init__() class B(object): def __init__(self): print('B') super(B, self).__i

VC方法调用顺序

VC1,push VC2 ? vc2 pop 到vc1 ? 右滑一半,然后取消 vc1 present到vc2 ? vc2 dismiss到vc1 ? push和present是不同的.表现在两个vc的didappear和diddisapper的顺序上 6. 如何禁止右滑pop界面 self.navigationController.interactivePopGestureRecognizer.enabled = NO;