LoginSignup
4
1

More than 3 years have passed since last update.

FragmentPagerAdapterのページ切り替えを無効にする方法

Last updated at Posted at 2020-03-17

FragmentPagerAdapterでスワイプの無効/有効を切り替えたかったので実装をメモ。
ViewPagerでは実装できるけどFragmentPagerAdapterでは難しいみたい。
https://stackoverflow.com/questions/41656902/disable-swipe-in-fragmentpageradapter-android

結果、無効というかタブの切り替えは行われないような処理が書けた。
(スワイプしようとしても弾性をもって勝手に元の位置に戻る系の。これはこれでUIとしてありかなと。)
以下、実装。


private lateinit var listener:ViewPager.SimpleOnPageChangeListener
private lateinit var viewPager:ViewPager

                :

//スワイプを無効にする
listener = object : ViewPager.SimpleOnPageChangeListener() {
     override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
          super.onPageScrolled(position, positionOffset, positionOffsetPixels)
          viewPager.currentItem = 固定したいpageposition
     }
}
viewPager.addOnPageChangeListener(listener)

                :

//スワイプを有効にする
viewPager.removeOnPageChangeListener(listener)
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1