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()」というものもがあることも分かったのでスクロールに対してのイベントも拾えるのかも…
いづれいろいろ検証してみたいと思います。
以上、本日の記録。
コメント
コメントを投稿