wangpeiyuan / CycleViewPager2

使用 ViewPager2 实现无限轮播效果,可以用来实现 banner 以及上下滚动文字广告等。Implementing android cycle viewPager with ViewPager2
91 stars 12 forks source link

页面启动时候,左右两边的条目不显示,看看有办法解决没 #1

Closed jarryleo closed 4 years ago

jarryleo commented 4 years ago

如题

wangpeiyuan commented 4 years ago

可以试试 setCurrentItem(1, true) 这个,不过会有个滑动的过程

jarryleo commented 4 years ago

有没有别的方案,开始就滑动并显示第二页有点奇怪,并且肯定过不了UI审核

wangpeiyuan commented 4 years ago

可能需要研究一下 ViewPager2 源码,暂时没有好的解决方案。不过有个替代方案:可以先隐藏等滑动完成之后再显示出来,你可以试试

jarryleo commented 4 years ago
private void fake(){
        post(new Runnable() {
            @Override
            public void run() {
                boolean fakeDrag = mViewPager2.beginFakeDrag();
                if (fakeDrag){
                    mViewPager2.fakeDragBy(1f);
                    mViewPager2.fakeDragBy(-2f);
                    mViewPager2.fakeDragBy(1f);
                    mViewPager2.endFakeDrag();
                }
            }
        });
    }

我现在想到的解决办法,在view加载完后,利用它自己的模拟拖拽,左右拖动一个像素,测试发现没问题

jarryleo commented 4 years ago

您好,我用kotlin把这个库重写了一遍,貌似解决了这个问题: https://github.com/jarryleo/ViewPager2Banner 自己修改了一些实现方式