1
FragmentPagerAdapter
에 대해 ViewPager를 설정하기 위해 다음 코드를 작성했습니다.FragmentPagerAdapter의 프래그먼트를 업데이트 할 수 없습니다.
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]
}
그리고 활동의, 내가보기 호출기를 설정하기 위해 다음과 같은 방법이있다. 내가 다시 위의 메서드를 호출하고 있지만 이미 인스턴스화 한 내보기는 업데이트되지 않습니다 다시 어댑터를 변경에
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
}
이 때 새로운 데이터 세트가 제공됩니다. 인스턴스화되지 않은 뷰만 업데이트됩니다.
나는 심지어 notifyDataSetChange()
어댑터에 다음 코드를 추가하려고했지만 또한 작동하지 않습니다.
override fun getItemPosition(`object`: Any?): Int = FragmentPagerAdapter.POSITION_NONE
새 데이터를 수신하면 콜백을 통해 단편으로 목록을 업데이트 할 수 있습니다. – Raghunandan