如何检测用户是否按下后退按钮并在 Kotlin 片段内的应用程序中导航回来?

How to detect if user pressed back button and navigates back in app inside a fragment in Kotlin?

我正在使用导航组件,我想检测用户何时从片段 B -> A 导航回来,因此我可以在导航回片段之前在片段 B 中创建的房间数据库 table 中保存一个注释A(我正在制作一个笔记应用程序,我想像 Google keep note 应用程序一样保存笔记)。

这里应该是

共享视图模型有几个替代方案。

  1. fun navigateBackWithResult(result: Bundle) 如此处解释 https://medium.com/google-developer-experts/using-navigation-architecture-component-in-a-large-banking-app-ac84936a42c2

  2. 创建回调。

ResultCallback.kt

interface ResultCallback : Serializable {
    fun setResult(result: Result)
}

将此回调作为参数传递(注意它必须实现 Serializable 并且接口需要在其自己的文件中声明。)

<argument android:name="callback"
                  app:argType="com.yourpackage.to.ResultCallback"/>

让framgent A实现ResultCallback,fragment B将获取参数并通过它们传回数据,args.callback.setResult(x)

原文Post在这里