Я использую действие NavigationDrawer и реализовал метод onNavigationItemSelected
, как указано ниже.
override fun onNavigationItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.nav_home -> {
var homeFragment:HomeFragment =HomeFragment ()
supportFragmentManager.beginTransaction().replace(R.id.content_frame,homeFragment)
.addToBackStack(null).commit()
}
R.id.nav_profile -> {
var profileFragment:ProfileFragment =ProfileFragment ()
supportFragmentManager.beginTransaction().replace(R.id.content_frame,profileFragment)
.addToBackStack(null).commit()
}
R.id.nav_history -> {
var historyFragment:HistoryFragment =HistoryFragment ()
supportFragmentManager.beginTransaction().replace(R.id.content_frame,historyFragment)
.addToBackStack(null).commit() }
}
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
drawerLayout.closeDrawer(GravityCompat.START)
return true
}
Вопрос: как мне получить тот же экземпляр этих фрагментов, когда Щелкаю второй раз по пункту? Я читал об использовании для этого findFragmentByTag. Но я не мог понять, как это реализовать здесь.
Чтобы уточнить свой вопрос: я щелкнул дома, профиля, истории в таком порядке. Затем я снова нажал кнопку «Домой». Я хочу заменить исходный экземпляр HomeFragment (а не новый экземпляр) в кадре содержимого.