Я пытаюсь понять, как реализовать контекстную панель действий с помощью компонента навигации androidx
В котором у меня есть RecyclerView
, и когда элементы выбраны, мне нужно показать панель действий для выбранных элементы, аналогичные изображению ниже.
введите описание изображения здесь
Я уже реализовал выбранное состояние для RecyclerView
элементов, но мне осталось изменить панель инструментов и реагировать на щелчки действий.
Я использую одно приложение с несколькими фрагменты
В MainActivity я инициализирую панель инструментов следующим образом.
Конечно, мне нужно будет переключить панель инструментов с фрагмента.
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration : AppBarConfiguration
private lateinit var navController: NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding : MainActivityBinding = DataBindingUtil.setContentView(this,R.layout.main_activity)
setSupportActionBar(binding.toolbar)
val host: NavHostFragment = supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment? ?: return
navController = host.navController
appBarConfiguration = AppBarConfiguration(
setOf(R.id.main_dest),
binding.drawerLayout
)
setupActionBar(appBarConfiguration)
}
private fun setupNavigationMenu(navView : NavigationView) {
navView.setupWithNavController(navController)
}
private fun setupActionBar(appBarConfig: AppBarConfiguration) {
setupActionBarWithNavController(navController,appBarConfig)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return item.onNavDestinationSelected(navController)
|| super.onOptionsItemSelected(item)
}