我有一个具有单个活动和底部导航视图的应用程序。
底部导航中有4个项目,所以我有4个片段。
我的问题是如何使用底部导航视图(如Youtube或Instagram)处理后堆栈?
我正在使用Kotlin,这是我的代码:
nav_view.setOnNavigationItemSelectedListener {
when (it.itemId) {
R.id.navigation_home -> {
replaceFragment(homeFragment)
true
}
R.id.navigation_projects -> {
replaceFragment(projectsFragment)
true
}
R.id.navigation_team -> {
replaceFragment(teamFragment)
true
}
R.id.navigation_contact -> {
replaceFragment(contactUsFragment)
true
}
else -> false
}
}
private fun replaceFragment(fragment: Fragment) {
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, fragment)
.commit()
}
override fun onBackPressed() {
if (nav_view.selectedItemId == R.id.navigation_home) {
super.onBackPressed()
} else {
nav_view.selectedItemId = R.id.navigation_home
}
}
答案 0 :(得分:0)
我认为您也需要像这样替换片段:
override fun onBackPressed() {
if (nav_view.selectedItemId == R.id.navigation_home) {
super.onBackPressed()
} else {
nav_view.selectedItemId = R.id.navigation_home
replaceFragment(homeFragment) // add this line
}
}