ViewPager2 中的片段在第二次查看时为空白
Fragment in ViewPager2 blank upon second viewing
目前,我使用 ViewPager2
实例
实现了以下适配器
在初始加载时 FeedFragment
加载其数据并且可见且正常。当我滚动到第三个左右的片段并返回时,FeedFragment
是空白的,直到我触摸它然后它重新出现。是什么导致了这种空白状态?
FragmentStateAdapter(fragmentManager, lifecycle) {
override fun getItemCount(): Int = 5
override fun createFragment(position: Int): Fragment {
// Return a NEW fragment instance in createFragment(int)
return when (position) {
0 -> FeedFragment()
else -> Fragment()
}
}
}
也许这会有所帮助。
private var feedFragment: FeedFragment? = null
private var someOtherFragment: SomeOtherFragment? = null
override fun createFragment(position: Int): Fragment {
when (position){
0 -> {
if (feedFragment == null) {
feedFragment = FeedFramgment.getInstance()
}
return feedFragment
}
1 -> {
if (someOtherFragment == null) {
someOtherFragment = SomeOtherFragment.getInstance()
}
return someOtherFragment
}
else -> {
return Fragment()
}
}
}
目前,我使用 ViewPager2
实例
在初始加载时 FeedFragment
加载其数据并且可见且正常。当我滚动到第三个左右的片段并返回时,FeedFragment
是空白的,直到我触摸它然后它重新出现。是什么导致了这种空白状态?
FragmentStateAdapter(fragmentManager, lifecycle) {
override fun getItemCount(): Int = 5
override fun createFragment(position: Int): Fragment {
// Return a NEW fragment instance in createFragment(int)
return when (position) {
0 -> FeedFragment()
else -> Fragment()
}
}
}
也许这会有所帮助。
private var feedFragment: FeedFragment? = null
private var someOtherFragment: SomeOtherFragment? = null
override fun createFragment(position: Int): Fragment {
when (position){
0 -> {
if (feedFragment == null) {
feedFragment = FeedFramgment.getInstance()
}
return feedFragment
}
1 -> {
if (someOtherFragment == null) {
someOtherFragment = SomeOtherFragment.getInstance()
}
return someOtherFragment
}
else -> {
return Fragment()
}
}
}