Android Can';t更新FragmentPagerAdapter中的片段
我已经为Android Can';t更新FragmentPagerAdapter中的片段,android,android-fragments,android-viewpager,kotlin,fragmentpageradapter,Android,Android Fragments,Android Viewpager,Kotlin,Fragmentpageradapter,我已经为FragmentPagerAdapter编写了以下代码来设置ViewPager。 class ViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) { private val mFragmentList = ArrayList<Fragment>() private val mFragmentTitleList = ArrayList<String>(
FragmentPagerAdapter
编写了以下代码来设置ViewPager。
class ViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) {
private val mFragmentList = ArrayList<Fragment>()
private val mFragmentTitleList = ArrayList<String>()
override fun getItem(position: Int): Fragment = mFragmentList[position]
override fun getCount(): Int = mFragmentList.size
fun addFragment(fragment: Fragment, title: String) {
mFragmentList.add(fragment)
mFragmentTitleList.add(title)
}
fun addFragment(fragment: Fragment) {
mFragmentList.add(fragment)
}
override fun getPageTitle(position: Int): CharSequence = mFragmentTitleList[position]
}
当您想要更新视图时,可以尝试直接调用
适配器.notifyDataSetChanged()
在插入新数据之前,您可能需要清除
MFFragmentList
和MFFragmentTitleList
。您可以进行回调,然后在收到新数据时以片段形式更新列表。您解决了此问题吗?
private fun setupViewPager(viewPager: ViewPager, dataList: List<CholesterolMonthlySummary>) {
Log.i(TAG, "Size of the dataList passing through setupViewPager is ${dataList.size}")
val adapter = ViewPagerAdapter(supportFragmentManager)
adapter.addFragment(CholesterolPagingFragment.newInstance(ArrayList(dataList), CHOL))
adapter.addFragment(CholesterolPagingFragment.newInstance(ArrayList(dataList), LDL))
adapter.addFragment(CholesterolPagingFragment.newInstance(ArrayList(dataList), HDL))
adapter.addFragment(CholesterolPagingFragment.newInstance(ArrayList(dataList), TRIG))
viewPager.adapter = adapter
}
override fun getItemPosition(`object`: Any?): Int = FragmentPagerAdapter.POSITION_NONE