android: kotlin: I have several fragments in my viewpager on defined positions and as per the requirement i want to skip the particular fragment say fragment_2 and show the next one say fragment_3 on the swipe of fragment_1 if fragment_2 is meant to be hidden. But when i do that, the particular fragment_2 which is meant to be skipped is being shown for a moment.
Providing my viewpager adapter code here below. any help would be appreciated.
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)
}
}