Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.56 KB | None | 0 0
  1. class MemberStatisticPagerAdapter(
  2.     fm: FragmentManager,
  3.     behavior: Int
  4. ) : BaseFragmentStatePagerAdapter(fm, behavior) {
  5.  
  6.     private var data: List<MemberStatistic>? = null
  7.  
  8.     fun setData(data: List<MemberStatistic>) {
  9.         this.data = data
  10.     }
  11.  
  12.     override fun getItem(position: Int): Fragment {
  13.         return StatisticMemberFragment.newInstance(data!![position])
  14.     }
  15.  
  16.     override fun getCount(): Int {
  17.         return data?.size ?: throw IllegalStateException("No data in pager adapter")
  18.     }
  19.  
  20.     companion object {
  21.         private const val TAG = "MemberStatisticPagerAdapter"
  22.     }
  23. }
  24.  
  25.  
  26.  
  27. abstract class BaseFragmentStatePagerAdapter(
  28.     fm: FragmentManager,
  29.     behavior: Int
  30. ) : FragmentStatePagerAdapter(fm, behavior) {
  31.  
  32.     private val registeredFragments = SparseArray<Fragment>()
  33.  
  34.     private val registeredFragmentsCount: Int
  35.         get() = registeredFragments.size()
  36.  
  37.     override fun instantiateItem(container: ViewGroup, position: Int): Any {
  38.         val fragment = super.instantiateItem(container, position) as Fragment
  39.         registeredFragments.put(position, fragment)
  40.         return fragment
  41.     }
  42.  
  43.     override fun destroyItem(container: ViewGroup, position: Int, obj: Any) {
  44.         registeredFragments.remove(position)
  45.         super.destroyItem(container, position, obj)
  46.     }
  47.  
  48.     fun getRegisteredFragment(position: Int): Fragment {
  49.         return registeredFragments.get(position)
  50.     }
  51.  
  52.     abstract override fun getItem(position: Int): Fragment
  53.  
  54.     abstract override fun getCount(): Int
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement