如何從 viewpager2 中的活動重新啟動片段。我嘗試了類似notifyDataSetChanged()
notifyItemChanged(0)
. 但是沒有用。
ViewPagerAdapter.kt
class ViewPagerAdapter(
fragmentManager : FragmentManager,
var fragments : MutableList<Fragment>,
lifecycle : Lifecycle
) :
FragmentStateAdapter(fragmentManager, lifecycle) {
override fun getItemCount() : Int {
return fragments.size
}
override fun createFragment(position : Int) : Fragment {
return fragments[position]
}
}
MainActivity.kt
private val tabsArray = arrayOf("Test1", "Test2")
...
fragmentPagerAdapter = ViewPagerAdapter(
supportFragmentManager,
fragments,
lifecycle
)
viewPager.adapter = fragmentPagerAdapter
TabLayoutMediator(tabs, viewPager) {tab, position ->
tab.text = tabsArray[position]
}.attach()
...
uj5u.com熱心網友回復:
你可以試試下面的代碼。來源:鏈接
MainActivity.kt
...
viewPagerAdapter.refreshFragment(1, ForthFragment())
...
片段配接器.kt
...
fun refreshFragment(index: Int, fragment: Fragment) {
fragments[index] = fragment
notifyItemChanged(index)
}
override fun getItemId(position: Int): Long {
return fragments[position].hashCode().toLong()
}
override fun containsItem(itemId: Long): Boolean {
return fragments.find { it.hashCode().toLong() == itemId } != null
}
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/493916.html
上一篇:導航控制器中的回圈導航