ViewPagerのページ切り替え時に何か処理をしたい時はOnPageChangeListener
を使います。
OnPageChangeListener
を定義して、ViewPager.addOnPageChangeListener
にセットしてあげるだけで出来ます。
class MainFragment : Fragment() { private val pageChangeListener = object : ViewPager.OnPageChangeListener { override fun onPageScrollStateChanged(state: Int) {} override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {} // ページ切り替え時 override fun onPageSelected(position: Int) { // ここに処理かく } } override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) pager.addOnPageChangeListener(pageChangeListener) } }
利用シーンとして私の環境では、
- ViewPagerの内動画をコンテンツとして持つページがあるとして、他のページから遷移または他のページに遷移したときに、再生・停止するとき
- 他のページから移動してきたとき画面をAPIをコールするとき
などで役に立ちました。