Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MemberStatisticPagerAdapter(
- fm: FragmentManager,
- behavior: Int
- ) : BaseFragmentStatePagerAdapter(fm, behavior) {
- private var data: List<MemberStatistic>? = null
- fun setData(data: List<MemberStatistic>) {
- this.data = data
- }
- override fun getItem(position: Int): Fragment {
- return StatisticMemberFragment.newInstance(data!![position])
- }
- override fun getCount(): Int {
- return data?.size ?: throw IllegalStateException("No data in pager adapter")
- }
- companion object {
- private const val TAG = "MemberStatisticPagerAdapter"
- }
- }
- abstract class BaseFragmentStatePagerAdapter(
- fm: FragmentManager,
- behavior: Int
- ) : FragmentStatePagerAdapter(fm, behavior) {
- private val registeredFragments = SparseArray<Fragment>()
- private val registeredFragmentsCount: Int
- get() = registeredFragments.size()
- override fun instantiateItem(container: ViewGroup, position: Int): Any {
- val fragment = super.instantiateItem(container, position) as Fragment
- registeredFragments.put(position, fragment)
- return fragment
- }
- override fun destroyItem(container: ViewGroup, position: Int, obj: Any) {
- registeredFragments.remove(position)
- super.destroyItem(container, position, obj)
- }
- fun getRegisteredFragment(position: Int): Fragment {
- return registeredFragments.get(position)
- }
- abstract override fun getItem(position: Int): Fragment
- abstract override fun getCount(): Int
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement