これは、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番目のページが表示されます。どうしよう。または、ビューページをスクロールできないようにすることは可能ですか?ボタンからページを変更することしかできませんか?