android - 如何在 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() 函数
解决方案
override fun getItem(position: Int): Fragment {
return when (position) {
0 -> FragIn()
1 -> FragProd()
2 -> FragShelf()
else -> FragIn()
}
}
只需检查 'FragIn()' 方法中的内容,如果没有new fragment
.
推荐阅读
- php - Laravel Eloquent 模型查询
- google-apps-script - 允许用户在 Google 表单中添加部分
- firebase - 具有 Firestore 加载与无数据的 StreamBuilder
- python - 如何在 Python 中模拟钢琴键?
- graphics - 如何从 freepascal 获取功能图形?
- if-statement - 如何在 Google 表格中保留跳行计数?
- javascript - 对象循环和渲染到 HTML
- switch-statement - nullif 为零或负值时
- python - 如何将 JSON 文件路径作为运行时参数传递?
- r - 使用 purrr 迭代替换数据框列中的字符串