Android ViewPager无限循环滑动并可自动滚动完整实例
Android ViewPager无限循环滑动并可自动滚动完整实例 Android ViewPager无限循环滑动并可自动滚动是一个非常常见的功能,很多APP都有这个功能。以下是实现该功能的完整实例代码。 我们需要在布局文件中添加一个ViewPager: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/top_item" android:orientation="vertical"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="180dp" android:id="@+id/top_vp" ></android.support.v4.view.ViewPager> </LinearLayout> ``` 然后,我们需要在MainActivity中初始化ViewPager的Adapter: ```java public class MainActivity extends AppCompatActivity { private ViewPager topVp; private int[] images = new int[]{R.mipmap.ad0, R.mipmap.ad1, R.mipmap.ad3}; // 模拟存放要展示的图片 private List<ImageView> imageViews; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initImageViews(); initVp(); } / * 初始化图片资源 */ private void initImageViews() { imageViews = new ArrayList<>(); for(int i = 0;i<images.length;i++){ ImageView imageView = new ImageView(this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setImageResource(images[i]); imageViews.add(imageView); } } private void initVp() { topVp = (ViewPager) findViewById(R.id.top_vp); topVp.setAdapter(new PagerAdapter() { @Override public int getCount() { return imageViews.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(imageViews.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(imageViews.get(position)); return imageViews.get(position); } }); } } ``` 在上面的代码中,我们首先初始化了一些图片资源,然后将它们添加到ViewPager中。我们使用了PagerAdapter来管理ViewPager中的Item。 为了实现ViewPager的无限循环滑动,我们可以使用以下几种方法: 1. 使用ViewPager中的setOnPageChangeListener方法监听ViewPager的滑动事件,当滑动到最后一页时,自动滑动到第一页。 2. 使用ViewPager中的setCurrentItem方法来实现无限循环滑动。 3. 使用PagerAdapter中的instantiateItem方法来实现无限循环滑动。 下面是一个使用setOnPageChangeListener方法实现无限循环滑动的示例代码: ```java topVp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { if(position == imageViews.size() - 1){ topVp.setCurrentItem(0); } } @Override public void onPageScrollStateChanged(int state) { } }); ``` 在上面的代码中,我们使用setOnPageChangeListener方法监听ViewPager的滑动事件,当滑动到最后一页时,自动滑动到第一页。 实现ViewPager的无限循环滑动需要使用PagerAdapter来管理ViewPager中的Item,然后使用setOnPageChangeListener方法或setCurrentItem方法来实现无限循环滑动。
- 粉丝: 5
- 资源: 927
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- cubeex是基于vue2.0开发的组件库,将包含一套完整的移动UI.zip
- MineAdmin是基于Hyperf框架 和 Vue3+Vite5 开发的前后端分离权限管理系统,自适应多终端 特色:后端 crud 生成 + 前端低代码 json 化配置.zip
- Preact前端框架,一键部署到云开发平台.zip
- bpi flash读ID程序
- Lessgo 是一款简单、稳定、高效、灵活的 golang web 开发框架,支持动态路由、自动化API测试文档、热编译、热更新等,实现前后端分离、系统与业务分离.zip
- 2019计算机联考408代码题
- easyink的前端服务之一,基于企业微信JS-SDK开发的企微客户端侧边栏页面.zip
- DRF-ADMIN后台管理系统项目(端代码).zip
- micro-app-chrome-plugin是基于京东零售推出的一款为micro-app框架而开发的chrome插件.zip
- front-end project template 前端快速开发模版.zip