如何更改片段之间浮动操作按钮的行为和图标?

问题描述 投票:0回答:1

我在 Android Studio 中创建了一个基本视图 Activity,但我无法弄清楚如何更改片段之间的“setOnClickListener”和 FAB 图标。我正在使用 FAB 调出照片选择器,一旦您选择了一张照片,它就会移动到下一个片段。

我尝试在移动到下一个片段时设置图像资源,虽然感觉很麻烦,但它有效。但我只能使用 onSupportNavigateUp() 使用工具栏后退按钮将其恢复,这又感觉很糟糕。这使得它无法通过 Android 的导航后退按钮恢复。我看过类似的答案,它们看起来也很复杂。导航有这么难吗?或者我在这个项目中使用活动是完全错误的吗?

android kotlin android-fragments android-activity floating-action-button
1个回答
0
投票

扩展我的评论,我正在用一些代码编写答案,以便给您一个想法。

活动

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()
}
© www.soinside.com 2019 - 2024. All rights reserved.