android ViewPager滑动事件(OnPageChangeListener)讲解

首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener

OnPageChangeListener这个接口需要实现三个方法:(onPageScrollStateChanged,onPageScrolled ,onPageSelected)

onPageScrollStateChanged(int arg0)   ,此方法是在状态改变的时候调用,其中arg0这个参数

有三种状态(0,1,2)。arg0 ==1的时辰默示正在滑动,arg0==2的时辰默示滑动完毕了,arg0==0的时辰默示什么都没做。

当页面开始滑动的时候,三种状态的变化顺序为(1,2,0),演示如下:

当viewPager状态改变时候的代码块:

打印结果:

onPageScrolled(int arg0,float arg1,int arg2)    ,当页面在滑动的时候会调用此方法,在滑动被停止之前,此方法回一直得到

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

arg0 :当前页面,及你点击滑动的页面

arg1:当前页面偏移的百分比

arg2:当前页面偏移的像素位置

(参见官网:http://docs.eoeandroid.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html#onPageScrolled(int, float, int))

演示如下:

页面滚动时侯代码:

日志打印:

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

时间: 2024-10-31 02:04:38

android ViewPager滑动事件(OnPageChangeListener)讲解的相关文章

android ViewPager滑动事件讲解

首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener OnPageChangeListener这个接口需要实现三个方法:(onPageScrollStateChanged,onPageScrolled ,onPageSelected) onPageScrollStateChanged(int arg0)   ,此方法是在状态改变的时候调用,其中arg0这个参数 有三种状态(0,1,2).arg0 ==1的时辰默示正在滑动,arg0==2的时辰默示滑动完毕了,a

SwipeListview拦截ViewPager滑动事件(改进)

前几天解决了SwipeListview拦截ViewPager滑动事件,今天在ViewPager下面增加一些常规布局,发现在新增布局中设置完点击事件后,在这些新增布局范围内,ListView不能上下滑动,查看SwipeListview中onInterceptTouchEvent()方法,发现不能简单将滑动事件分配给子View,应当对移动事件重写,在判定为上下滑动时,将事件拦截在此,最后改进的结果如下: downPosition = pointToPosition((int) x, (int) y)

android Viewpager onscrolled事件使用

OnPageScrolled事件参数 position表示当前正在显示的页面索引,如果向右滑动表示将要显示的页面的position,向左滑动表示将要消失的页面的position, positionOffsetPixels表示页面移动的像素数,可用于实现android页面滑动时差动画效果 ViewPager.OnPageChangeListener mPageChangeListener = new ViewPager.OnPageChangeListener() { @Override publ

android viewPager滑动速度设置

ViewPager 滑动速度设置,并实现点击按钮滑动 使用过ViewPager的童鞋,都会感觉到设置界面滑动挺简单的.但是有时候却满足不了UI设计的要求. 在用这个ViewPager的时候我遇到两个问题,不知道你们遇到没有.这里做个笔记,总结一下: 第一个问题是,ViewPager在我们滑动放手后,速度和动画的变化率是固定的. 第二个问题的,我们再添加左右按钮后,如点击滑动到前一页面(通过mViewPager.setCurrentItem(viewID, true);),一闪就了,用户感觉不到动

SwipeListview拦截ViewPager滑动事件

最近在做一个项目,用到下拉刷新跟侧滑删除SwipeListView,在SwipeListView中用addHeaderView()方法添加一个ViewPager,发现ViewPager滑动不了,查看源码看到在SwipeListView中滑动事件被拦截了,因此ViewPager得不得滑动事件. 我的解决思路是在SwipeListview中的onInterceptTouchEvent()方法中,判断当前触发滑动事件Item位置,判断当为HeaderView时不拦截,此方法亦可解决问题. downPo

SwipeRefreshLayout与ViewPager滑动事件冲突解决

问题描述: 开发中发现,SwipeRefreshLayout的下拉刷新,与ViewPager开发的banner的左右滑动事件有一点冲突,导致banner的左右滑动不够顺畅.很容易在banner的左右滑动的过程中,触发SwipeRefreshLayout的下拉刷新,从而导致banner左右滑动的体验很差. 解决方案: 可以在ViewPager的滑动时候设置SwipeRefreshLayout暂时不可用,ViewPager的滑动效果就变得很流畅了. 代码示例: mViewPager.setOnTou

android开发之定制ViewPager滑动事件

明天还要加班,苦逼的程序猿,简单说说最近遇到的一个问题吧. 我在viewpager+fragment学习笔记中简单介绍过ViewPager+Fragment的用法,其实并不难,当时实现了一个如下图所示的效果: 然而,在实际开发中这一点技术可能根本不够用,项目中会有各种各样奇葩的需求,我最近就遇到了一个怪异的需求,捣鼓之后还是解决了,今天和大家聊聊. 由于涉及到公司项目,我在这里就使用我自己制作的一个Demo来和大家介绍. 我们要实现的效果如下图: 这里一共有三个Fragment,其中两个通过左右

Android -- ViewPager滑动背景渐变

原理 总布局为RelativeLayout或者FrameLayout,在这里我们用的是RelativeLayout.先设置背景图片,宽度和高度都fill_parent,在设置viewpager,viewpager的背景要透明哟~这样背景图片就可以显示在页面上.对viewpager进行滑动监听,通过滑动的偏移量对当前背景进行淡出,下一个背景进行显示. 布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/an

Android——ViewPager滑动背景渐变(自定义view,ViewPager)

效果: ActivityBackgroundImage,java(自定义视图) package com.example.chenshuai.test322; import android.content.Context; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.Log; impor