如何在 Kotlin 中实现 View Pager 相同的 Fragment?
How to implement View Pager same Fragment in Kotlin?
我想问一下,在 Kotlin 中有没有最好的方法来实现只有一个片段的视图寻呼机?
创建模型 class FragmentConfig
您将在其中保留片段参数。
将配置数组 fragmentConfigs
添加到您的 FragmentPagerAdapter
在适配器中:
override fun getItem(position: Int): Fragment {
val fragmentConfig = fragmentConfigs[position]
return UniversalListFragment.newInstance(fragmentConfig)
}
如果你有像下面这样的 ViewPager Adapter 就好了
class ViewPagerAdapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) {
val fragments:MutableList<Fragment> = ArrayList()
val titles:MutableList<String> = ArrayList()
fun addFragment(fragment: Fragment, title:String){
fragments.add(fragment)
titles.add(title)
}
override fun getItem(p0: Int): Fragment = fragments[p0]
override fun getCount(): Int = fragments.size
override fun getPageTitle(position: Int): CharSequence? {
return titles[position]
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
super.destroyItem(container, position, `object`)
}
}
现在如果你有片段,SampleFragment
(比方说)
只需使用您想要的任何片段调用该方法,
adapter.addFragment(SampleFragment(),"Sample Fragment")
..
..
adapter.addFragment(SampleFragment(),"Sample Fragment 2")
我想问一下,在 Kotlin 中有没有最好的方法来实现只有一个片段的视图寻呼机?
创建模型 class FragmentConfig
您将在其中保留片段参数。
将配置数组 fragmentConfigs
添加到您的 FragmentPagerAdapter
在适配器中:
override fun getItem(position: Int): Fragment {
val fragmentConfig = fragmentConfigs[position]
return UniversalListFragment.newInstance(fragmentConfig)
}
如果你有像下面这样的 ViewPager Adapter 就好了
class ViewPagerAdapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) {
val fragments:MutableList<Fragment> = ArrayList()
val titles:MutableList<String> = ArrayList()
fun addFragment(fragment: Fragment, title:String){
fragments.add(fragment)
titles.add(title)
}
override fun getItem(p0: Int): Fragment = fragments[p0]
override fun getCount(): Int = fragments.size
override fun getPageTitle(position: Int): CharSequence? {
return titles[position]
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
super.destroyItem(container, position, `object`)
}
}
现在如果你有片段,SampleFragment
(比方说)
只需使用您想要的任何片段调用该方法,
adapter.addFragment(SampleFragment(),"Sample Fragment")
..
..
adapter.addFragment(SampleFragment(),"Sample Fragment 2")