Kotlin 如果我跳过视图寻呼机中的一个片段,它会暂时可见
android:kotlin:我在我的viewpager中定义了几个片段,根据需要,我想跳过特定片段,比如片段2,如果片段2是隐藏的,则在片段1的滑动上显示下一个片段,比如片段3。 但当我这样做时,将要跳过的特定片段_2将显示一段时间。 在下面提供我的viewpager适配器代码。 任何帮助都将不胜感激Kotlin 如果我跳过视图寻呼机中的一个片段,它会暂时可见,kotlin,android-viewpager,Kotlin,Android Viewpager,android:kotlin:我在我的viewpager中定义了几个片段,根据需要,我想跳过特定片段,比如片段2,如果片段2是隐藏的,则在片段1的滑动上显示下一个片段,比如片段3。 但当我这样做时,将要跳过的特定片段_2将显示一段时间。 在下面提供我的viewpager适配器代码。 任何帮助都将不胜感激 class-ViewPagerAdapter(活动:活动,计数:整数,fm:FragmentManager):FragmentPagerAdapter(fm){ 私有变量活动:活动?=null
class-ViewPagerAdapter(活动:活动,计数:整数,fm:FragmentManager):FragmentPagerAdapter(fm){
私有变量活动:活动?=null
私有变量计数:Int=0
内部var registeredFragments=SparseArray()
初始化{
this.count=count
这个。活动=活动
}
覆盖趣味getItem(位置:Int):片段{
变量结果:Fragment=ScreenOneFragment()
何时(职位){
0->result=ScreenOneFragment()
1->result=ScreenTwoFragment()
2->result=CustomFragment()
3->result=NumbersFragment()
4->result=WikitestFragment()
5->result=WordsFragment()
6->result=NFCFragment().apply{HomeActivity.mCallback=this}
7->result=ListenFragment()
8->result=FakeScreenFragment()
}
返回结果
}
覆盖getPageTitle(位置:Int):字符序列{
返回“”
}
重写fun getCount():Int{
返回计数
}
覆盖元素(容器:视图组,位置:Int):任意{
val fragment=super。将元素(容器、位置)实例化为片段
registeredFragments.put(位置,片段)
返回片段
}
覆盖项(容器:视图组,位置:Int,`object`:Any){
已注册碎片。移除(位置)
super.destroyItem(容器、位置、`object`)
}
fun getRegisteredFragment(位置:Int):片段{
返回registeredFragments.get(位置)
}
}
这是预期行为。如果你想“跳过”片段,你可以禁用动画:谢谢你的回复Jenea,我会检查并更新你。
class ViewPagerAdapter(activity: Activity,count: Int, fm: FragmentManager): FragmentPagerAdapter(fm) {
private var activity: Activity? = null
private var count: Int = 0
internal var registeredFragments = SparseArray<Fragment>()
init {
this.count = count
this.activity = activity
}
override fun getItem(position: Int): Fragment {
var result: Fragment = ScreenOneFragment()
when (position) {
0 -> result = ScreenOneFragment()
1 -> result = ScreenTwoFragment()
2 -> result = CustomFragment()
3 -> result = NumbersFragment()
4 -> result = WikitestFragment()
5 -> result = WordsFragment()
6 -> result = NFCFragment().apply { HomeActivity.mCallback = this }
7 -> result = ListenFragment()
8 -> result = FakeScreenFragment()
}
return result
}
override fun getPageTitle(position: Int): CharSequence {
return ""
}
override fun getCount(): Int {
return count
}
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val fragment = super.instantiateItem(container, position) as Fragment
registeredFragments.put(position, fragment)
return fragment
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
registeredFragments.remove(position)
super.destroyItem(container, position, `object`)
}
fun getRegisteredFragment(position: Int): Fragment? {
return registeredFragments.get(position)
}
}