标签

Android 44

Android Network security configuration Android 网络配置 Android Camera Preview gradlew 源码分析 Android 动态修改菜单 Android RelativeLayout 之 Gravity 的使用 Android Studio Gradle Download Error Android加载子View 【转】Android打开与关闭软键盘 Android EditText软键盘显示隐藏以及“监听” Android mipmap文件夹 Android 用命令行更新SDK Android Service学习之AIDL, Parcelable和远程服务 Android 5.0设备中,Notification小图标是白色的 Android最佳实践 Android Keystore 文件的密码修改 Android Studio 中加载so库文件 Android 中方法重载遇到的问题 ListView & RecyclerView Google Volley如何缓存HTTP请求文件 Creating logs in Android applications Advanced Android TextView TextView高亮URL地址解析 TextView 高亮URL地址,并实现跳转 Best practices in Android development Android Sdk Manager无法更新问题解决办法 Android ViewPager滑动事件 Google Volley 网络请求框架(一) Andorid UI注入工具的使用(ButterKnife) Android 项目中出现的奇葩bug, 数据NullPointExcption Android Drawable Animation Android 图片的毛玻璃效果 Android之使用Log打印日志 使用Fidder来拦截Android发送的HTTP请求 Android之Webview使用 Android之Notification的使用(二) Android之Notification的使用(一) Android Keyboard Show&Hiden Android 粘贴板的使用 Android中使用.9.png 使用Fidder来拦截Android发送的HTTP请求 Andorid JUnit 单元测试 Activity之间的切换动画 Android ListView中Adapter的使用

Android ViewPager滑动事件

2014年11月18日

ViewPager的滑动事件,是使用的OnPageChangeListener,他有三个方法:

onPageScrollStateChanged, onPageScrolled,onPageSelected

下面来解释一下这三个方法:

  1. onPageScrollStateChanged
 public void onPageScrollStateChanged(int arg0) {
 }

其中arg0这个参数有三种状态(0,1,2)

  • arg0==1的时辰默示正在滑动

  • arg0==2的时辰默示滑动完毕了

  • arg0==0的时辰默示什么都没做。

  1. onPageScrolled
 public void onPageScrolled(int arg0, float arg1, int arg2) {
 }

其中三个参数的含义分别为:

  • arg0 :当前页面,及你点击滑动的页面
  • arg1:当前页面偏移的百分比
  • arg2:当前页面偏移的像素位置

arg0 是滑动过程中的较小那一页的下标 即,如果是从左往右滑动,arg0为将要出现那一页的下标,也就是说页码小的那一页的下标 如果是从右往左滑动,arg0为滑动前显示的那一页的下标,也就是页码小的那一页的下标

  1. onPageSelected
 public void onPageSelected(int arg0) {
 }

此方法是页面跳转完后得到调用,arg0是你当前选中的页面的Position(位置编号)

最佳实践

    @Override  
    public void onPageScrolled(int position, float positionOffset,  int positionOffsetPixels) {  
        if (positionOffset > 0) {  
            ChangeColorIconWithTextView left = mTabIndicator.get(position);  
            ChangeColorIconWithTextView right = mTabIndicator.get(position + 1);  
  
            left.setIconAlpha(1 - positionOffset);  
            right.setIconAlpha(positionOffset);  
        }  
    } 
     @Override  
    public void onClick(View v) {  
        resetOtherTabs();  
        switch (v.getId()) {  
        case R.id.id_indicator_one:  
            mTabIndicator.get(0).setIconAlpha(1.0f);  
            mViewPager.setCurrentItem(0, false);  
            break;  
        case R.id.id_indicator_two:  
            mTabIndicator.get(1).setIconAlpha(1.0f);  
            mViewPager.setCurrentItem(1, false);  
            break;  
        case R.id.id_indicator_three:  
            mTabIndicator.get(2).setIconAlpha(1.0f);  
            mViewPager.setCurrentItem(2, false);  
            break;  
        case R.id.id_indicator_four:  
            mTabIndicator.get(3).setIconAlpha(1.0f);  
            mViewPager.setCurrentItem(3, false);  
            break;  
        }  
    }  


友情链接: Hiro's Blog | Junjun's Blog