2021年2月24日水曜日

ViewPager2

  1. class MainActivity : AppCompatActivity() {  
  2.   
  3.     private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }  
  4.   
  5.     override fun onCreate(savedInstanceState: Bundle?) {  
  6.         super.onCreate(savedInstanceState)  
  7.         setContentView(binding.root)  
  8.   
  9.         val adapter = PagerAdapter(this)  
  10.         binding.pager.adapter = adapter  
  11.   
  12.         // MDC の TabLayout と組み合わせるときは TabLayoutMediator を使う  
  13.         // TabLayoutMediator の attach は ViewPager2 に adapter をセットした後に行う  
  14.         TabLayoutMediator(binding.tabLayout, binding.pager) { tab, position ->  
  15.             tab.text = adapter.getTitle(position)  
  16.         }.attach()  
  17.     }  
  18. }  
  19.   
  20. private class PagerAdapter(  
  21.     fragmentActivity: FragmentActivity  
  22. ) : FragmentStateAdapter(fragmentActivity) {  
  23.   
  24.     override fun getItemCount(): Int {  
  25.         return ...  
  26.     }  
  27.   
  28.     override fun createFragment(position: Int): Fragment {  
  29.         return PageFragment.newInstance(...)  
  30.     }  
  31.   
  32.     fun getTitle(position: Int): String {  
  33.         return ...  
  34.     }  
  35. }  

0 件のコメント:

コメントを投稿