实现逻辑参考:http://www.cnblogs.com/xinye/archive/2013/06/09/3129140.html

代码:如下

  1. public class MainActivity extends Activity implements
  2. OnPageChangeListener {
  3. private ViewPager viewpager;
  4. private int view[] = { R.layout.a, R.layout.b, R.layout.c };
  5. private List<View> data = new ArrayList<View>();
  6.  
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_main);
  11. init();
  12. initViewPagerData();
  13. }
  14.  
  15. private void initViewPagerData() {
  16. data.add(0,
  17. LayoutInflater.from(this).inflate(view[view.length - 1], null));
  18. for (int i = 0; i < view.length; i++) {
  19. data.add(i + 1, LayoutInflater.from(this).inflate(view[i], null));
  20. }
  21. data.add(view.length + 1,
  22. LayoutInflater.from(this).inflate(view[0], null));
  23.  
  24. viewpager.setAdapter(new ViewPagerAdapter(data, this));
  25. viewpager.setCurrentItem(1, false);
  26. }
  27.  
  28. private void init() {
  29. // 初始化界面
  30. viewpager = (ViewPager) findViewById(R.id.viewpager);
  31. // 添加事件
  32. viewpager.setOnPageChangeListener(this);
  33.  
  34. }
  35.  
  36. @Override
  37. public void onPageScrollStateChanged(int arg0) {
  38.  
  39. }
  40.  
  41. @Override
  42. public void onPageScrolled(int arg0, float arg1, int arg2) {
  43. // 无限循环滑动
  44. if (view.length > 1) {// 多于一个view才会循环跳转
  45. if (arg0 == 0 && arg2 == 0) {
  46. // 切换循环更加流畅,不会出现生硬的切换感觉
  47. arg0 = view.length;
  48. viewpager.setCurrentItem(arg0, false);
  49. } else if (arg0 > view.length) {
  50. viewpager.setCurrentItem(1, false);
  51. }
  52. }
  53. }
  54.  
  55. @Override
  56. public void onPageSelected(int arg0) {
  57.  
  58. }
  59. }

  

Viewpage实现左右无限滑动的更多相关文章

  1. ViewPager结合view无限滑动

    使用viewPager进无限滑动,这里的实现是在适配器里面进行,当然在外头使用滑动监听也行. import android.support.v4.view.PagerAdapter; import a ...

  2. ViewPager无限滑动

    2016-6-19 前言 View轮播效果在app中很常见,一想到左右滑动的效果就很容易想到使用ViewPager来实现.对于像我们常说的banner这样的效果,具备无限滑动的功能是可以用ViewPa ...

  3. ViewPage和ActionBar打造滑动视图

    滑动效果非常流畅,可以将页签放置到ActionBar上,点击页签可以切换ViewPage,滑动ViewPage会同步更显Tabs. main.xml <?xml version="1. ...

  4. 使用ViewPager实现左右“无限”滑动的万年历

    有时候就是这样,研究一个问题,一开始想到了一个觉得可行的方案,然后去尝试:尝试了很久.很多次,已经要放弃了,关掉电脑心里 想这个需求没办法实现:在去上厕所的路上突然想到了一个点子,第二天一试,尼玛,搞 ...

  5. ViewPager结合Fragment进行无限滑动

    实现ViewPager结合Fragment实现无限循环切换,这里也是在适配器里面进行的,当然使用滑动监听也能够实现 import android.support.v4.app.Fragment; im ...

  6. ViewPager 简单实现左右无限滑动.

    只需在在适配器中将getCount 给一个较大的值, 然后将currentItem 设为值的一半 就可以伪实现 无限循环. private static final int PAGE_COUNT = ...

  7. NGUI无限滑动

    http://www.unity蛮牛.com/blog-9383-1391.html 最近由于工作需要,就开始研究NGUI滑动.刚开始参考NGUI自带的循环滑动,利用隐藏和显示,提高GPU的渲染,但是 ...

  8. [UI列表]LoopScrollRect无限滑动不卡顿

    应用场景 对于背包界面,排行榜列表,聊天消息,等有大量的UI列表的界面,常规做法是为每一条数据生成一个格子,在数据量越大的情况下,会生成越来越多的Gameobject,引起卡顿. 这篇文章讲述的就是解 ...

  9. android 实现 波纹效果+图片左右无限滑动缩放效果

    项目中用到的 ,记录下.说不定下次又用到了.就提取出来了. 录制效果一般,将就看吧.代码地址如下 https://yunpan.cn/ckQaXMpYwdUnn (提取码:7ac7)

随机推荐

  1. Java8 读写锁的改进:StampedLock(笔记)

         StampedLock是Java8引入的一种新的所机制,简单的理解,可以认为它是读写锁的一个改进版本,读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发,但是读和写之间依然是冲突的,读 ...

  2. 协程基础_context系列函数

    近期想看看协程,对这个的详细实现不太了解.查了下,协程最常规的做法就是基于makecontext,getcontext,swapcontext这类函数在用户空间切换用户上下文. 所以在这通过样例代码尽 ...

  3. 普通用户 crontab 任务不运行

    今天发如今linux下,普通用户的crontab任务不运行.网上搜了好多.好多说要在运行的脚本前面加上例如以下内容 if [ -f ~/.bash_profile ]; then   . ~/.bas ...

  4. ant-design 实现 添加页面

    1.逻辑代码 /** * 添加用户 */ import React,{PureComponent} from 'react' import {Card,Form,Input,Select,Button ...

  5. Visual Studio C++ MFC界面常用参数更改(改变图标,添加控件,调试打印函数等等)

    背景 需要使用Visual Studio C++做一些界面.此篇文章既是记录Visual Studio C++在调整界面时常常遇见的问题. 正文 一.如何更改窗体图标,以及生成的.exe图标 更改窗体 ...

  6. 破解 zip 压缩包程序

    目录 项目文件结构 代码实现过程 演示效果 代码地址如下:http://www.demodashi.com/demo/12021.html 项目文件结构 在当前目录有三个文件: 3-zipCrack. ...

  7. C语言-srand种子详解

    rand() 函数取得随机数的时候是通过一个叫做"种子"的变量经过计算得出一个数值, 然后得出的数值再作为新的"种子"参与下一次的运算, 这样就得到了所谓的随机 ...

  8. Python 的函数

    Python 函数: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你 ...

  9. 关于SVN提交强制加入注释

    一.摘要 场景: 在这次开发项目过程中,团队中总是有人忘记添加注释. 问题: 1:其他成员不知道你提交是什么代码, 给回滚操作带来很多不必要的麻烦. 2:这个工作需要有一个人天天提醒大家在提交代码的时 ...

  10. python下载腾讯云慢日志并发送邮件附件

    这里没优化,只是对腾讯云下载慢日志,然后通过邮件发送出去 #!/usr/bin/env python # encoding: utf-8 import json import smtplib impo ...