关于viewpager的滑动问题
今天碰到很诡异的问题,viewpager中放置至少三张图片的时候能够正常实现循环滑动,只放置一张或者两张的时候就不行。
后来发现问题症结:viewpager需要保证既可以向左滑动,又可以向右滑动,因此当前显示view的左侧和右侧都是存在的,只有超过这三个范围之外的才对其调用destory方法。
循环实现的代码如下:
package com.wot.cloudsensing.carrotfarm.adapter; import java.util.ArrayList; import com.wot.cloudsensing.carrotfarm.R; import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout.LayoutParams; public class ViewPagerAdapter extends PagerAdapter {
private ArrayList<ImageView> imageviews;
private int size = 0; public ViewPagerAdapter(ArrayList<ImageView> views) {
this.imageviews = views;
this.size = views.size(); } @Override
public int getCount() {
return Integer.MAX_VALUE;
} @Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
} @Override
public void destroyItem(ViewGroup container, int position, Object object) {
System.out.println("111 destroyItem position = "
+ (position % imageviews.size()));
((ViewPager) container).removeView(imageviews.get(position
% imageviews.size()));
} @Override
public Object instantiateItem(ViewGroup container, int position) {
System.out.println("111 instantiateItem instantiateItem position = "
+ (position % imageviews.size()));
((ViewPager) container).addView(
imageviews.get(position % imageviews.size()), 0);
return imageviews.get(position % imageviews.size());
} }
关于viewpager的滑动问题的更多相关文章
- 去掉SrollView、GrdiView、ListView、ViewPager等滑动到边缘的光晕效果
		当我们使用SrollView.GrdiView.ListView.ViewPager带有滑动功能的组件时,滑动到边缘时总会出现类光晕效果.这是用于提示用户已经滑动到了组件的边缘,不能再滑动了,但有时候 ... 
- ViewPager相互嵌套,导致子ViewPager无法滑动,且子ViewPager中的view无法被点击
		场景:当使用ViewPager进行嵌套的时候,子viewPager是无法进行嵌套的,因此我们要重写ViewPager类,并重写里层viewPager类中的onTouchEvent方法,调用其父 ... 
- ViewPager禁止滑动以及它与内层滑动控件水平方向上事件冲突的解决方法
		一.上图 二.场景描写叙述 最近在做项目的时候.遇到一个怪异的需求,描写叙述例如以下: 1.ViewPager中嵌套3个View,当从View1滑动到View2时禁止ViewPager的滑动事件. 2 ... 
- viewpager处理(一):让viewpager不能滑动
		1.实现原理: 自定义viewpager,重写onTouchEvent方法,什么触摸事件都不响应即可让viewpager不能滑动. 2.代码如下 public class NoScrollViewPa ... 
- TabLayoutViewPagerDemo【TabLayout+ViewPager可滑动】
		版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 使用TabLayout搭配ViewPager实现可滑动的顶部选项卡效果. 效果图 代码分析 1.演示常规的设置. 2.通过自定义Vi ... 
- ViewPager实现滑动翻页效果
		实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ... 
- ViewPager无限滑动
		2016-6-19 前言 View轮播效果在app中很常见,一想到左右滑动的效果就很容易想到使用ViewPager来实现.对于像我们常说的banner这样的效果,具备无限滑动的功能是可以用ViewPa ... 
- Android中ViewPager实现滑动条及与Fragment结合的实例教程
		ViewPager类主要被用来实现可滑动的视图功能,这里我们就来共同学习Android中ViewPager实现滑动条及与Fragment结合的实例教程,需要的朋友可以参考下 自主实现滑动指示条先上一个 ... 
- Android解决下拉刷新控件SwipeRefreshLayout和ViewPager的滑动冲突
		直接说明下我自己项目中的情况,如图: 外部嵌套任何一种refresh下拉控件之后,上方的viewpager左右滑动事件都受到影响,滑动不流畅,稍微有点向下的趋势就会触发刷新. 起初以为可能跟不同下拉控 ... 
- 判断viewpager左右滑动方向
		实现思路就是通过viewpager的滑动监听,用参数position进行比较,同时当判断完这个要把比较的positon覆盖.这里简单介绍一下public void onPageScrolled(int ... 
随机推荐
- Luogu P3959 [NOIP2017]宝藏
			题目 STO rqy OTZ 首先这种题一看我们就知道可以爆搜. prim一眼假了,但是加个SA也能过. 所以我们来写状压. 记\(f_{i,j,S}\)表示起点到\(j\)距离为\(i\),我们现在 ... 
- Nob常用命令
			说明:此文件为常用的命令笔记 规则: .使用"[组名]"分组,如[linux] .使用"<标题一>"标示知识点,可用"<<二级 ... 
- 04: CI(持续集成)/CD(持续交付/持续部署)
			1.1 持续集成.持续交付 介绍 参考博客:https://www.cnblogs.com/cay83/p/8856231.html 1.传统交付 1. 传统软件的开发与交付的周期都很漫长,从需求 ... 
- echarts图标使用(一)
			var data = []; // Parametric curve // for (var t = 0; t < 25; t += 0.001) { // var x = (1 + 0.25 ... 
- CSP-S全国模拟赛第三场 【nan死了】
			mmt 居然第一步膜化乘除 都没看出来,没救了... 大概是贡献前缀和优化的做法 巨兔式讲解:大家都学会了么? 咱发现有大量的 (i/j , i%j ) 同时 对很多 c 产生了贡献,咱可以去优化这一 ... 
- robots.txt写法大全和robots.txt语法的作用
			1如果允许所有搜索引擎访问网站的所有部分的话 我们可以建立一个空白的文本文档,命名为robots.txt放在网站的根目录下即可.robots.txt写法如下:User-agent: *Disallow ... 
- 解决错误:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://shiro.apache.org/tags]
			服务器错误信息如下: 解决方法: 把shiro包中的tld文件(shiro.tld)解压出来放到WEB-INF文件夹下即解决问题. 参考:http://blog.sina.com.cn/s/blog_ ... 
- 状态码是canceled
			timeout : 1000 给ajax配置如上属性 $.ajax({ type:"post", url:"pro/savePro", timeout : 10 ... 
- 测试 windows 发布日志
			<script>alert("hellow world")</script> 
- Librepilot-创建UAVObject及编译到飞机端和地面站端的步骤
			1. 创建UAVObject描述文件(xx.xml),并存放到\librepilot\shared\uavobjectdefinition目录中:2. 在\librepilot\flight\targ ... 
