I have been using the following adapter class for ViewPager
. It was converted to Kotlin from java.
class ViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) {
private val mFragmentList = ArrayList<Fragment>()
private val mFragmentTitleList = ArrayList<String>()
override fun getItem(position: Int): Fragment {
return mFragmentList[position]
}
override fun getCount(): Int {
return mFragmentList.size
}
fun addFragment(fragment: Fragment, title: String) {
mFragmentList.add(fragment)
mFragmentTitleList.add(title)
}
override fun getPageTitle(position: Int): CharSequence? {
return mFragmentTitleList[position]
}
}
To minimize number of lines I tried using Kotlin Pair
. And convert the above implementation to the following. Now I am curious about the performance of this implementation using Pair
. Could I get a logical explanation on this?
class ViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) {
private val pairs = ArrayList<Pair<Fragment, String>>()
fun addFragment(fragment: Fragment, title: String) = pairs.add(Pair(fragment, title))
override fun getItem(position: Int): Fragment = pairs[position].first
override fun getCount(): Int = pairs.size
override fun getPageTitle(position: Int): CharSequence? = pairs[position].second
}