ViewPager2をRecyclerView.Adapterで実装した場合のページ切り替えイベント処理実装【AndroidStudio】

ViewPager2を使っていると、ページ切替時に表示しているページ番号の切り替えなど、

PagerView2外の画面要素の書き換えがしたいと考え、

ページ切り替え時のイベント処理を実装する方法を調べてみました。


結論としては、

ViewPager2の「registerOnPageChangeCallback()」を設定することで実装できます。

javaプログラムで記載するとこんな感じ。

ViewPager2 viewPager2;
// *****
//
// *****
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
// ここに、ページ切り替え時に実装したい処理を記載。
}
});


リファレンス(ViewPager2)の記載。

「registerOnPageChangeCallback(ViewPager2.OnPageChangeCallback callback)」

Add a callback that will be invoked whenever the page changes or is incrementally scrolled.

 雑訳:ページ変更やスクロールされた場合に呼び出されるコールバックを追加する。


まんまですが、コールバックの型「ViewPager2.OnPageChangeCallback」のもつ

「onPageSelect()」(※ページが選択された際に呼び出されるメソッド)内に

実装したい処理を記載すればページを切り替えたイベントを拾えるようです。


ちょっと調べたところ、ViewPager2とFragmentStateAdapterを使用した方法は簡単に見つかったのですがRecyclerView.Adapterについてはなかなか検索にHITしませんでした。

(もしかして主流じゃない?)

しかし、今回の調べ物でViewPager2.OnPageChangeCallbackには

「onPageScrolled()」というものもがあることも分かったのでスクロールに対してのイベントも拾えるのかも…

いづれいろいろ検証してみたいと思います。


以上、本日の記録。

コメント

このブログの人気の投稿

Activity上に配置されたToolbarをFragment上から変更し、イベントを拾う方法【AndroidStudio】

AlertDialogのボタンをカスタマイズする【AndroidStudio】

レイアウトファイル上にIDが重複している場合の検索と、その有用性について【AndroidStudio】