我在 Android Studio 中创建了一个基本视图 Activity,但我无法弄清楚如何更改片段之间的“setOnClickListener”和 FAB 图标。我正在使用 FAB 调出照片选择器,一旦您选择了一张照片,它就会移动到下一个片段。
我尝试在移动到下一个片段时设置图像资源,虽然感觉很麻烦,但它有效。但我只能使用 onSupportNavigateUp() 使用工具栏后退按钮将其恢复,这又感觉很糟糕。这使得它无法通过 Android 的导航后退按钮恢复。我看过类似的答案,它们看起来也很复杂。导航有这么难吗?或者我在这个项目中使用活动是完全错误的吗?
扩展我的评论,我正在用一些代码编写答案,以便给您一个想法。
活动
private val listener = NavController.OnDestinationChangedListener { controller, destination, arguments ->
// Check destination.id and change the FAB icon accordingly here
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// init views
fab.setOnClickListener {
val id = navController.currentDestination?.id
// check the id and perform the action accordingly
}
// rest of your code
}
override fun onResume() {
super.onResume()
controller.addOnDestinationChangedListener(listener)
}
override fun onPause() {
controller.removeOnDestinationChangedListener(listener)
super.onPause()
}