0

これは、viewPager にあるリスナーです。

viewPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                pageNr.setText("page: " + (viewPager.getCurrentItem() + 1) + "/" + viewPager.getChildCount());
                currentSlide = viewPager.getCurrentItem();
                page = viewPager.getCurrentItem();
                viewPager.setAdapter(new SubcategoriesPagerAdapter(getActivity(), inflater, videos, numberOfPages));
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {

            }
        });

これは私のボタンです:

 nextBtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                goToNextSlide();
                pageNr.setText("page: " + (viewPager.getCurrentItem() + 1) + "/" + viewPager.getChildCount());
                if (categ == 2) {
                    numberOfPages = 2;
                }
                viewPager.setAdapter(new SubcategoriesPagerAdapter(getActivity(), inflater, videos, numberOfPages, categ));
            }
        });
        previousBtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                goToPreviousSlide();
                pageNr.setText("page: " + (viewPager.getCurrentItem() + 1) + "/" + viewPager.getChildCount());
                if (categ == 2) {
                    numberOfPages = 2;
                }
                viewPager.setAdapter(new SubcategoriesPagerAdapter(getActivity(), inflater, videos, numberOfPages, categ));
            }
        });
      private void goToNextSlide() {
        currentSlide = viewPager.getCurrentItem();
        page = viewPager.getCurrentItem();
        if (currentSlide < viewPager.getChildCount()) {
            viewPager.setCurrentItem(currentSlide + 1);
        }
    }

    private void goToPreviousSlide() {
        currentSlide = viewPager.getCurrentItem();
        page = viewPager.getCurrentItem();
        if (currentSlide > 0) {
            viewPager.setCurrentItem(currentSlide - 1);
        }
    }

次または前のボタンを押すと、ページが変更され、ページの写真も変更されます(9枚の写真、3x3の画像ビューのマトリックスがあります)2番目のページにスクロールすると、写真が変更されることがあります。そうではなく、ビューページャーが狂い始め、2番目のページから最初のページに戻れないことがありますが、右に無制限にスクロールできますが、毎回2番目のページが表示されます。どうしよう。または、ビューページをスクロールできないようにすることは可能ですか?ボタンからページを変更することしかできませんか?

4

1 に答える 1