如何解决单个活动应用程序中的导航抽屉,并在所有导航项目中显示默认片段
此代码段代码用于在应用启动时显示FirstFragment:
MainActivity.kt-> OnCreate()
val currentFragment =
supportFragmentManager.findFragmentById(R.id.fragmentContainer)
if (currentFragment == null) {
val fragment = FirstFragment.newInstance()
replaceFragment(fragment)
}
和通常的导航抽屉代码:
MainActivity.kt OnCreate()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.navigation_drawer)
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
//Navigation Drawer
val toggle = ActionBarDrawerToggle(
this,drawerLayout,toolbar,R.string.open_drawer,R.string.close_drawer
)
drawerLayout.addDrawerListener(toggle)
toggle.syncState()
val navigationView: NavigationView = findViewById(R.id.navigation_view)
navigationView.setNavigationItemSelectedListener(this)
并覆盖onCreateOptionsMenu(),onNavigationItemSelected():
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
// Inflate the menu,this adds items to the action bar
menuInflater.inflate(R.menu.menu,menu)
return true
}
override fun onNavigationItemSelected(item: MenuItem): Boolean {
when(item.itemId) {
R.id.second_fragment_id -> {
Log.d(TAG,"second_id")
}
R.id.third_fragment_id -> {
val fragment = ThirdFragment.newInstance()
replaceFragment(fragment)
}
}
val drawer = findViewById<DrawerLayout>(R.id.drawer_layout)
drawer.closeDrawer(GravityCompat.END)
return true
}
问题:
在项目中,Log.e()正常工作 但在替换ThirdFragment项时再次显示FirstFragment。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。