ViewPager实现循环滑动

在Android开发中,ViewPager常用于实现滑动效果,但在默认情况下无法实现循环滑动。本文介绍了三种方法来解决这个问题:一是通过重写adapter的getCount方法;二是添加头尾元素并监听滑动事件进行切换;三是结合OnPageScrollStateChanged方法实现无缝循环。最后提供了完美解决方案的源码链接。
摘要由CSDN通过智能技术生成

android中用ViewPager实现循环滑动

ViewPager在android开发中是个非常常用的组件,最为大家所熟悉的应用场景大概是在app中自动滚动的广告了。当然了,还有很多其它的地方也会用它来实现。不过美中不足的是,它没提供相应的API来实现循环滑动,当滑到最后一页后就不能前进了,只能回退,而当退到第一页时也不能再回退了。可我们的需求中往往有些地方需要循环的效果,比如上面说的广告,一般都是在ViewPager中放几张广告图,然后循环地滚动着。这样就要我们想点别的办法来达到要求。

目前网上主要有两种方法来解决这个问题。

方法一:

一种是方式是重写adapter的getCount方法,返回一个很大的数,比如Integer.MAX_VALUE,然后在初始化时从Integer.MAX_VALUE的二分之一处开始显示,因为这个值很大,所以基本不可能滑动到position=0或者position=Integer.MAX_VALUE的位置,使用户感觉是在循环。

其主要代码像这样:

 private class MyAdapter extends PagerAdapter {

    private List<View> listView;

    public MyAdapter(List<View> listView) {
        this.listView = listView;
    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值