如何创建循环视图第2页?

n7taea2i  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(363)

如何在java中创建循环视图pager2(无限滚动)?例如,我想从第1页到第100页,同时向左滑动,不要停下来。

myViewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            super.onPageScrolled(position, positionOffset, positionOffsetPixels);
            Log.d(CPAct,"onPageScrolled "+position);
        }

        @Override
        public void onPageSelected(int position) {
            super.onPageSelected(position);
            Log.d(CPAct,"onPageSelected Position: "+position);
        }

        @Override
        public void onPageScrollStateChanged(int state) {
            super.onPageScrollStateChanged(state);
            Log.d(CPAct,"onPageScrollStateChanged  state: "+state);

            if (state == ViewPager2.SCROLL_STATE_IDLE) {
                if (myViewPager2.getCurrentItem() == 0)
                    myViewPager2.setCurrentItem(99, false);
                else if (myViewPager2.getCurrentItem() == 99) 
                    myViewPager2.setCurrentItem(0, false);
            }

在设置适配器之后,我在initview()中尝试了上面的代码,但它不能正常工作。例如,当我从第2页向左滑动时,它直接转到最后一页,跳过第1页;当我向右滑动以转到最后一页,它直接转到第1页时,也会发生同样的情况。我只想无限滚动而不跳过任何页面。

f45qwnt8

f45qwnt81#

你应该发帖 Adapter s代码,在那里你应该返回 Integer.MAX_VALUEgetCount 并为图纸列表项引入适当的获取模型-例如,如果您有 ArrayList data 然后使用 data.get(position % data.getItemCount())getItem (因为数组的大小是固定的,但您正在通知适配器有非常多/无限多的项)
你现在的计划不太好,因为你在操纵 View 对于舒尔来说,这迟早会增加一些视觉上的小问题,而且效率也不是很高

相关问题