【Android Tricks 6】ViewPager首页与尾页的滑动动作响应

ViewPager能够说是Android应用中使用比較广发的一个组件了。它能够帮助我们非常

方便地实现滑动更换View的效果。刚好近期搞的一个项目有一个需求用到了这个,同

时是要能在首页和尾页滑动时可以进行响应,而不是像默认的那样没有不论什么动作,所

以略微研究了下,希望能够对大家有所帮助。

在分析了需求之后。发现这个应该是和ViewPager的换页监听有联系,于是做了个小

demo。通过实验来寻找问题的解决方式。

首先贴出换页监听器的几个public方法以及第一个方法中state数字代表的含义,例如以下

图所看到的。

这里我们重点关注前两个方法,它们和scroll动作相关。详细实验代码例如以下:

private  OnPageChangeListener pageChangeListener = new OnPageChangeListener() {
		@Override
		public void onPageSelected(int arg0) {
			// TODO Auto-generated method stub

		}

		@Override
		public void onPageScrolled(int arg0, float arg1, int arg2) {
			// TODO Auto-generated method stub
			Log.d("TestActivity", arg0+","+arg1+","+arg2);
		}

		@Override
		public void onPageScrollStateChanged(int arg0) {
			// TODO Auto-generated method stub
			Log.d("TestActivity", arg0+"");
		}
	};

当在首页往左滑动时,log信息如右:。能够发现以以1开头,以0结尾

(数字的含义请參看上面所给图中关于state的解释);当在中间页向右滑动时,log信息

例如以下所看到的,此时从1经历了2的状态。最后到了0状态。当在最后一页继续向右滑动时。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVuZ2JvZGI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

log信息如右:,和情况1类似。状态从1变到了0,可是第二行是以2开

头的,而情况1是以0开头的(測试用例一共是3页。也就是说第二行开头数字代表的

是该页的编号),实验到此就结束了。

综上可得,假设要在首页往左滑动时响应动作能够例如以下写,同理假设要想在最后一

private  OnPageChangeListener pageChangeListener = new OnPageChangeListener() {
		@Override
		public void onPageSelected(int arg0) {
			// TODO Auto-generated method stub

		}
		@Override
		public void onPageScrolled(int arg0, float arg1, int arg2) {
			// TODO Auto-generated method stub
			//Log.d("TestActivity", arg0+","+arg1+","+arg2);
			curPage = arg0;
		}
		@Override
		public void onPageScrollStateChanged(int arg0) {
			// TODO Auto-generated method stub
			//Log.d("TestActivity", arg0+"");
			if (preState == 1 && arg0 == 0 && curPage == 0) {
				your action...
			}
			preState = arg0;
		}
	};

页往右滑动时响应动作,仅仅要将推断第三个方法中推断条件中的"curPage == 0"改为

"curPage == view size - 1"就可以。

在这个实验中我们仅仅使用了部分数据,其它数据事实上也是非常实用的,比方你要想

实现滑动到页面的一半时响应动作,就能够在onPageScrolled方法中检測第二个參数

的变化等等。所以动动手。能够学会的东西还是挺多的。

时间: 2024-09-30 07:11:34

【Android Tricks 6】ViewPager首页与尾页的滑动动作响应的相关文章

datatables的Bootstrap样式的分页怎么添加首页和尾页(引)

找到dataTables.bootstrap.js(版本3):(此项目中文件名为:dataTableExt.js) 1 $.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) 2 { 3 return { 4 "iStart": oSettings._iDisplayStart, 5 "iEnd": oSettings.fnDisplayEnd(), 6 "iLength": oS

Android学习之——ViewPager及应用引导页的开发

背景知识 当我们第一次安装Android应用时,有的应用会有引导页,要么是用于介绍应用的新功能,要么就是关于应用的介绍,有的甚至是推广广告等. 那么这个应用引导页是怎样实现的呢?这就得有请我们今天的主角登场了——ViewPager. ViewPager介绍 ViewPager继承自ViewGroup类,属于android.support.v4.view包(这个包是Google提供给我们开发兼容低版本Android的包,主要功能是提供各种各样的类来向后处理View的兼容性). ViewPager,

Android开发心得——viewpager调用setCurrentItem设页面没有滑动效果?我来帮你

本博文欢迎转载,转载请注明来自唔系好人之Android小码农 最近做项目,遇到一个焦点图的问题,而我,在这段时间可以说是viewpager的爱好者,虽然有很多优秀的开源项目,但是我还是想要研究一下,viewpager,怎么自己做带有滑动效果的焦点图切换. 通过一轮的网络搜索,最终研究到一个方法通过反射来获取viewpager的内部属性,然后设置他的滑动属性. 说实话,对于我这种半路出家的和尚来说,反射是个什么真的不懂,我也是听同事说的,他这个反射的作用就是强制获取了一个并不公开的内部属性,并修改

怎么把分页按钮(首页,尾页等)放在表格右下角处?(已解决)

页面做得差不多了,只是表格右下角的分页按钮杂乱不堪,像这样: 如果各自添加样式,会显得麻烦,毕竟有好多带有表格的页面. 所以,我尝试用表格给他们布局, 具体是把它们一起放到另一个table中的唯一一个td标签中,用div包裹, 然后用js修改该table宽度为上面table宽度.做好"藏书阁"后,把这个"小包裹"摆到栏中右端, 即给div加个"float:right"样式. 最后,隐藏这个table. 好了,效果如下:

Python - Django - 添加首页尾页上一页下一页

添加首页和尾页: views.py: from django.shortcuts import render from app01 import models def book_list(request): # 从 URL 中取参数 page_num = request.GET.get("page") print(page_num, type(page_num)) page_num = int(page_num) # 定义两个变量保存数据从哪儿取到哪儿 data_start = (pa

JQuery Pagination 分页插件 增加了首页尾页以及跳转功能

JQuery分页插件 挺好用的 但是官方是没有提供首页尾页以及跳转功能 我觉得这个功能可以有,于是就改进了一下 一个js一个css从连接里面下 链接:http://pan.baidu.com/s/1nvaq99R 密码:9nfb 上效果图: 页面代码 <script type="text/javascript"> //分页查询开始 $(document).ready(function() { getDataList(0, null); }); var rows = 10;

android SlidingTabLayout实现ViewPager页卡滑动效果

先来张效果图(可以滑动切换页卡) 主页面布局文件 remind_auction_new_list.xml : <RelativeLayout style="@style/Rosemary.Plane" xmlns:android="http://schemas.android.com/apk/res/android"> <!--头部布局--> <com.liam.rosemary.ui.view.SlidingTabLayout and

HTML静态分页(形如:首页,上一页,下一页,尾页)

在HTML中有时候我们会用到静态分页,一次拿回一定量的数据结果条目,我们会以形如:第2页,共12页  首页 上一页 下一页 尾页 的方式进行静态分页,以下是该种静态分页的代码,供兄弟姐妹们参考. <div class="page"> <!-- a href="tosearch.jsp" target="_blank" class="blue">更多</a --> <SCRIPT typ

android使用ViewPager实现欢迎引导页

android使用ViewPager实现欢迎引导页 大多数APP第一次启动的时候,都会有一个引导界面,左右滑动,到最后一张,用户点击才再次进入主界面.当第二次启动的时候,则直接进入主界面. 这种效果一般使用ViewPager实现.今天就来为大家介绍一下ViewPager的使用. 实现步骤: 使用SharedPerferences来记录是否是第一次启动APP,如果是,则转跳到Guide页面,如果不是第一次启动.就转跳到主Activity. MainActivity: 本Activity作为Logo