Android 导航组件,如何知道结果是否设置为 onViewCreated

Mor*_*goo 6 navigation android android-fragments

在片段中我setFragmentResultListener等待结果:

setFragmentResultListener(EnableFingerPrintFragment.ARG_REQUEST_KEY) { _, bundle ->
    bundle.getString(EnableFingerPrintFragment.ARG_RESULT_KEY)
        ?.let { isActivatedResult: String ->
            // DO something
        }
}
findNavController().navigate(R.id.to_enableFingerPrintFragment,)
Run Code Online (Sandbox Code Playgroud)

当结果返回时,该片段将被重新创建并被onCreateView调用。

如何知道是否是onCreateView第一次创建片段被调用,还是来自返回的结果(在目标片段中设置结果之后)?

如何知道结果是否设置onViewCreated为检查此条件?

Ali*_*ari -1

我认为你必须setFragmentResultListeneronCreate中初始化你的监听器,当你回来时,只是重新创建你的视图,并且onCreate不会调用两次。

https://developer.android.com/training/basics/fragments/pass-data- Between

此外,在导航组件新更新中,您可以使用 liveData 轻松在片段之间发送数据。

/sf/answers/4253042111/