You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ViewPager2在第0位添加Item后的滚动异常问题求助

ViewPager2 首位添加Item后滚动异常问题

在ViewPager2的第0位添加Item后,出现以下异常:

  • 新添加的Item无法正常滚动显示,执行滚动操作后会自动回到当前视图
  • 初始的主Item在添加新Item到首位后也无法再显示

我的ViewPager2适配器代码如下:

inner class ScreenSlidePagerAdapter(fa: FragmentActivity) : FragmentStateAdapter(fa) {
    override fun getItemCount(): Int {
        return list.size
    }

    override fun createFragment(position: Int): Fragment = ScrollFragment(list[position])

    fun addFragment(string: String) {
        list.add(string)
        notifyItemInserted(list.size)
    }

    fun addAtPreviousFragment(string: String) {
        list.add(0, string)
        notifyItemInserted(0)
    }
}

其中addAtPreviousFragment方法负责在第0位添加内容。

添加Item的点击事件代码如下:

mAddAtNext.setOnClickListener {
    Handler(Looper.getMainLooper()).postDelayed(
        {
            val randomNext = (50..90).random()
            println("randomNext >>>> $randomNext")
            pagerAdapter.addFragment("Next $randomNext")

        }, 200
    )
}

mAddAtPrevious.setOnClickListener {
    Handler(Looper.getMainLooper()).postDelayed(
        {
            val randomPrevious = (0..40).random()
            println("randomPrevious >>>> $randomPrevious")
            pagerAdapter.addAtPreviousFragment("Previous $randomPrevious")
        }, 200
    )
}

完整代码已上传至GitHub仓库,恳请各位提供帮助,谢谢!

内容的提问来源于stack exchange,提问作者Rakshit Nawani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 00:26:00