ViewPager的循环滑动

问题:

ViewPager 左右滑动到最后一页的时候不能继续滑动了,设置自动滑动的时候,到最后一页时又会出现那种从最后一页切换到第一页的一个跳转动作,用户体验很不好,我们需要的是能够滑动到最后一页的时候能够继续滑动重新从第一页开始加载,设置自动滑动的时候也能够很流畅的从最后一页到第一页的加载;

解决办法:

ViewPager之所以会出现以上问题,主要是加载的页面数的限制,也就是ViewPager的长度的限制,所以我们只需要修改ViewPager的长度即可,修改getCount方法:

 

/**
		*callbacks
		*/
		@Override
		public int getCount()
		{
			// TODO Auto-generated method stub
			return Integer.MAX_VALUE;
		}


这样就把ViewPager的长度设置成整形最大值了,用户再怎么用也不可能滑动这么长吧;

设置了长度后需要处理加载页面和销毁页面了,因为ViewPager有这么长,我不能每一页都给它填充数据,何况我们的数据还是有限的,所以只能对加载的数据进行处理,处理办法就是用当前页码对实际需要页面的长度求余:

/**
		*callbacks
		*/
		@Override
		public void destroyItem(ViewGroup container, int position, Object object)
		{
			// TODO Auto-generated method stub
			int tempPos = position%indicatorItemViews.size();
			container.removeView(indicatorItemViews.get(tempPos));
		}
		
		/**
		*callbacks
		*/
		@Override
		public Object instantiateItem(ViewGroup container, int position)
		{
			// TODO Auto-generated method stub
			int tempPos = position%indicatorItemViews.size();
			View view = indicatorItemViews.get(tempPos);
			container.addView(view, 0);
			return view;
		}


这样就可以保证页面能够一直往下切换,解决了上面两个问题

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值