在我的应用中,我的主要活动是使用容器和5个项目的bottomNavigationView。在容器中,我可以显示带有信息的片段。我可以通过单击位于底部导航视图上的按钮来更改片段。我注意到了问题:
当我快速单击项目时,由于我的视图正在寻找视图元素或另一个问题是我的父活动工具栏显示错误的标题/副标题,我收到或应用程序崩溃。例如,我可以单击第1项,然后快速单击第2项,如果我继续快速单击,也可以看到工具栏显示了要求输入错误片段的内容。我以为也许检查片段可见性可以解决此问题,但对我没有帮助。我还尝试检查片段是否可以从>> types_of(my_function)
[str, int] -> [List[int]]
的片段看到,并且它也没有帮助我。这是bottomNavigationView侦听器的代码:
onCreateView
可能不知道private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
val transaction = supportFragmentManager.beginTransaction()
val bundle = Bundle()
when (item.itemId) {
R.id.item_id_1-> {
supportActionBar!!.show()
[....]
transaction.replace(R.id.contentContainerT, jobList).addToBackStack(null).commit()
textSetter("Item_0", resources.getString(R.string.all_jobs) + " " + sp!!.getString("all_jobs", ""))
return@OnNavigationItemSelectedListener true
}
R.id.item_id_2-> {
bottom_navigation_t.menu.findItem(R.id.received_mess).title.chunked(1)
disableShowHideAnimation(supportActionBar!!)
supportActionBar!!.show()
[.....]
textSetter(resources.getString(R.string.title_activity_message_center), resources.getString(R.string.received))
transaction.replace(R.id.contentContainerT, messageList).addToBackStack(null).commit()
return@OnNavigationItemSelectedListener true
}
R.id.item_id_3-> {
disableShowHideAnimation(supportActionBar!!)
supportActionBar!!.hide()
transaction.replace(R.id.contentContainerT, PersonalPage()).addToBackStack(null).commit()
return@OnNavigationItemSelectedListener true
}
R.id.item_id_4-> {
disableShowHideAnimation(supportActionBar!!)
supportActionBar!!.show()
[....]
transaction.replace(R.id.contentContainerT, notepadScr).addToBackStack(null).commit()
return@OnNavigationItemSelectedListener true
}
R.id.item_id_5-> {
disableShowHideAnimation(supportActionBar!!)
supportActionBar!!.hide()
textSetter(resources.getString(R.string.more_bottom_nav), "")
transaction.replace(R.id.contentContainerT, MoreScreenK()).addToBackStack(null).commit()
return@OnNavigationItemSelectedListener true
}
}
false
}
函数是否存在问题。