#android #android-fragments
#Android #android-фрагменты
Вопрос:
У меня есть MainActivity с BottomNavigationView следующим образом:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
navView.setupWithNavController(navController)
}
}
Кроме того, у меня есть кнопка настройки в верхней части навигационного представления. При нажатии этой кнопки я хочу, чтобы фрагмент настройки отображался поверх фрагмента навигации, скрывал его и отображал настройку в полноэкранном режиме.
Что-то вроде этого:
val settingsFragment = SettingFragment.newInstance()
val fragmentTransaction = supportFragmentManager.beginTransaction()
fragmentTransaction.addToBackStack(null)
fragmentTransaction.replace(/*what to user here*/, settings)
fragmentTransaction.commit()
Ответ №1:
Вот решение:
val navHostFragment
= supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
navHostFragment.childFragmentManager
.beginTransaction()
.replace(navHostFragment.id, SettingsFragment())
.addToBackStack(null)
.commit()