首页 > 解决方案 > 如果我在视图寻呼机中跳过一个片段,它会暂时可见

问题描述

android:kotlin:我的viewpager中有几个片段在定义的位置上,根据要求,我想跳过特定片段说fragment_2并在fragment_1的滑动上显示下一个说fragment_3,如果fragment_2是要隐藏的。但是当我这样做时,将显示要跳过的特定 fragment_2 片刻。

在下面提供我的 viewpager 适配器代码。任何帮助,将不胜感激。

    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)
    }
}

标签: kotlinandroid-viewpager

解决方案


推荐阅读