android ViewPager之OnPageChangeListener接口

项目中在使用ViewPager的时候,一般都要在界面滑动的时候做一些事情,android中有个专门的状态回调接口OnPageChangeListener。

/**
* Callback interface for responding to changing state of the selected page.
*/
public interface OnPageChangeListener {

/**
* This method will be invoked when the current page is scrolled, either as part
* of a programmatically initiated smooth scroll or a user initiated touch scroll.
*
* @param position Position index of the first page currently being displayed.
* Page position+1 will be visible if positionOffset is nonzero.
* @param positionOffset Value from [0, 1) indicating the offset from the page at position.
* @param positionOffsetPixels Value in pixels indicating the offset from position.
*/
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels);

/**
* This method will be invoked when a new page becomes selected. Animation is not
* necessarily complete.
*
* @param position Position index of the new selected page.
*/
public void onPageSelected(int position);

/**
* Called when the scroll state changes. Useful for discovering when the user
* begins dragging, when the pager is automatically settling to the current page,
* or when it is fully stopped/idle.
*
* @param state The new scroll state.
* @see ViewPager#SCROLL_STATE_IDLE
* @see ViewPager#SCROLL_STATE_DRAGGING
* @see ViewPager#SCROLL_STATE_SETTLING
*/
public void onPageScrollStateChanged(int state);
}

SDK中关于ViewPager OnPageChangeListener 的介绍如上.

public void onPageScrolled ( int position, float positionOffset , int positionOffsetPixels) ;

position:当前页码

positionOffset 页面偏移量(百分比) 当往右滑动时递增,往左滑动时递减。

positionOffsetPixels 页面像素偏移量 当往右滑动时递增,往左滑动时递减。

public void onPageSelected(int position)

position:当前选中的页码

public void onPageScrollStateChanged(int state)

state:滑动时,页面的状态。在ViewPager.class中定义了三个状态,分布为:

/**
* Indicates that the pager is in an idle, settled state. The current page
* is fully in view and no animation is in progress.
*/
public static final int SCROLL_STATE_IDLE = 0;

/**
* Indicates that the pager is currently being dragged by the user.
*/
public static final int SCROLL_STATE_DRAGGING = 1;

/**
* Indicates that the pager is in the process of settling to a final position.
*/
public static final int SCROLL_STATE_SETTLING = 2;

SCROLL_STATE_IDLE : 值为0,表示当前页已经选定。

SCROLL_STATE_DRAGGING: 值为1,表示当前页面正在拖动。

SCROLL_STATE_SETTING: 值为2,表示当前页面正在拖动中,还没有到选定状态。

在项目使用中,可以在onPageScrolled中得到页面的偏移量来设置滑动距离。

在onPageStateChanged中,通过页面的状态来进行处理相关的逻辑。

时间: 2024-09-29 22:44:19

android ViewPager之OnPageChangeListener接口的相关文章

Android——ViewPager+Fragment+ListView之间

Android--ViewPager+Fragment+ListView之间 <span style="font-size:18px;">package com.example.jreduch05; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.app.A

Android -- ViewPager、Fragment、状态保存、通信

工程架构                                                                                      TabAFm到TabEFm都是Fragment,并且每个Fragment对应一个布局文件. TabAFm.java                                                                            package com.yydcdut.viewpag

Android ViewPager实现Tabhost选项卡底部滑块动态滑动过渡

 <Android ViewPager实现Tabhost选项卡底部滑块动态滑动过渡> 之前基于github上的第三方开源控件ViewPagerIndicator的UnderlinePageIndicator(原文链接:http://blog.csdn.net/zhangphil/article/details/44752213),自己写了一个底部带有滑块.且当ViewPager页面切换时候选项卡也随之相应切换,且滑块也随之相应动态滑动效果得控件.但写的太过于紧耦合,不利于复用,所以现在重构

android viewPager 自动播放

package com.weidingqiang.custommooc.views.allcourse; import android.content.Context; import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.support.v4.view.PagerAdapter; import android.support.v4.view.View

android ViewPager详解

Viewpager 在android界面布局中属于常用类型 ,它可以做导航,页面菜单,进入软件是的欢迎界面 等等.比现在最流行的几款手机软件  ,QQ,微信,微博 等 ,其主界面 都用到了ViewPager,所以学好它,势在必得 ,在这里总结了下, 先用图解 : 这是一个仿微博界面的xml布局 ,他们之间的关系经常搞混淆,怕记不住 ,总结了几句话:ViewPager里面含界面,它的改变控制(title)Imageview的变化,Textview控制页面,并间接控制Title(imageview)

Android ViewPager使用方法小结

android-support-v4.jar 是谷歌提供给我们的一个兼容低版本安卓设备的软件包,里面包囊了只有在 Android 3.0 以上可用的API.而 ViewPager 就是其中之一.利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等. 准备 在使用ViewPager之前,需要在 build.gradle 中加入如下语句: compile 'com.android.support:support-v4:25.3.0' compile 'com.github.hackware19

解决实现OnPageChangeListener()接口的方法参数出现arg0,arg1的现象

在安卓开发中,我们经常用到ViewPager,那么既然用到ViewPager,一般都需要去实现OnPageChangeListener()接口的三个方法. 但是有时候实现的三个方法的参数都变成agr0,agr1.如下图所示: 这种情况通常可以通过绑定源码来处理. 一般情况下按住Ctrl点击OnPageChangeListener()接口就会看到下图界面,如果出现这界面那很好处理,我们点击按钮绑定SDK就可以了. 但是,有时候会出现这样的界面,没有Attach Source按钮. 这时候,我们需要

Android ViewPager用法小结

android-support-v4.jar 是谷歌提供给我们的一个兼容低版本号安卓设备的软件包.里面包囊了仅仅有在 Android 3.0 以上可用的API.而 ViewPager 就是当中之中的一个.利用它,我们能够做非常多事情,从最简单的导航,到页面菜单等等. 准备 在使用ViewPager之前,须要在 build.gradle 中加入例如以下语句: compile 'com.android.support:support-v4:25.3.0' compile 'com.github.ha

Android–ViewPager切换动画,PageTransformer

transformPage(View view, float position) view就是滑动中的那个view,position这里是float类型,是当前滑动状态的一个表示,比如当滑动到正全屏时,position是0,如果前一页和下一页基本各在屏幕占一半时,前一页的position是-0.5,后一页的posiotn是0.5(是-0.5还是0.5要看当前的view是前面那一页的view还是后面那一页的),所以根据position的值我们就可以自行设置需要的alpha,x/y信息,就是可以用s