Kotlin FragmentStatePageAdapter在第三次刷卡时销毁视图(如果有2项以上)
我已将FragmentStatePageAdapter设置为在相同布局和不同数据(用户配置文件)的片段中滑动。 当我给它列出两个项目时,它们都很好地工作。 如果我给它3个或更多的项目,它会为片段创建视图,但在第三次滑动时,内容将变为空白,无论我滑动的方向是哪个(向前,然后向前,向前,然后向后)。如果我在保持屏幕的同时准确地滑动到第三项,我可以看到它的有效内容,但当我完成滑动释放屏幕时,所有内容都消失了 页面适配器的设置如下所示。(swipeList是用户ID的列表,SwipentityType==0,每个用户内容由通过捆绑包传递的“uid”加载)Kotlin FragmentStatePageAdapter在第三次刷卡时销毁视图(如果有2项以上),kotlin,Kotlin,我已将FragmentStatePageAdapter设置为在相同布局和不同数据(用户配置文件)的片段中滑动。 当我给它列出两个项目时,它们都很好地工作。 如果我给它3个或更多的项目,它会为片段创建视图,但在第三次滑动时,内容将变为空白,无论我滑动的方向是哪个(向前,然后向前,向前,然后向后)。如果我在保持屏幕的同时准确地滑动到第三项,我可以看到它的有效内容,但当我完成滑动释放屏幕时,所有内容都消失了 页面适配器的设置如下所示。(swipeList是用户ID的列表,SwipentityType=
class SwipeAgerFragment:Fragment(){
私有lateinit变量父级:MainActivity
私有lateinit变量状态:state
私有lateinit var ctx:上下文
私有lateinit变量swipeList:MutableList
专用lateinit var寻呼机:ViewPager
覆盖创建视图(充气机:布局充气机,容器:视图组?,
savedInstanceState:捆绑?:查看{
val视图=充气机。充气(R.layout.fragment\u swipe\u寻呼机,容器,false)
父级=活动作为主活动
state=parent.state
ctx=state.ctx
swipeList=state.swipeList
pager=view.findViewById(R.id.fragmentswipager\u pager)
val pagerAdapter=ScreenSlidePageAdapter(儿童片段管理器)
pager.adapter=pagerAdapter
返回视图
}
私有内部类ScreenSlidePageAdapter(fm:FragmentManager):FragmentStatePagerAdapter(fm){
重写fun getCount():Int=swipeList.size
重写fun getItem(位置:Int):片段=when(state.swipeEntityType){
0 -> {
makeUserFragment(swipeList[位置])
}
其他->{
makeEventFragment(swipeList[位置])
}
}
}
private-fun-makeUserFragment(uid:Int):UserFragment{
val bundle=bundle()
bundle.putInt(“uid”,uid)
val frag=UserFragment()
frag.arguments=bundle
回程碎片
}
private-fun-makeEventFragment(eid:Int):EventFragment{
val bundle=bundle()
bundle.putInt(“eid”,eid)
val frag=EventFragment()
frag.arguments=bundle
回程碎片
}
}
设置
pager.offscreenPageLimit = swipeList.size
解决我的问题设置
pager.offscreenPageLimit = swipeList.size
解决我的问题