首页 > 解决方案 > 如何在 Android Kotlin 中修复“java.lang.IllegalStateException:已添加片段”

问题描述

我正在尝试将我的 RecyclerView 显示到一个片段中,该片段位于 TabLayout 内。

我是新手,不知道该怎么做才能修复它。调试时我得到:

java.lang.IllegalStateException: Fragment already added.

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val viewPager: ViewPager = findViewById(R.id.view_pager)
        val tabs: TabLayout = findViewById(R.id.tabs)
        viewPager.adapter = SectionsPagerAdapter(this, supportFragmentManager)
        tabs.setupWithViewPager(viewPager)

主要活动

override fun getItem(position: Int): Fragment {
        return when (position) {
            0 -> FragIn()
            1 -> FragProd()
            2 -> FragShelf()
            else -> FragIn()
        }
    }

我的 PagerAdapter 中的 getItem() 函数

标签: androidkotlinandroid-fragmentsandroid-recyclerviewandroid-tablayout

解决方案


override fun getItem(position: Int): Fragment {
        return when (position) {
            0 -> FragIn()
            1 -> FragProd()
            2 -> FragShelf()
            else -> FragIn()
        }
    }

只需检查 'FragIn()' 方法中的内容,如果没有new fragment.


推荐阅读