为什么当我使用 Android 导航组件返回片段时总是触发我的 onCreate?
why my onCreate is always triggered when I back to a fragment using Android Navigation component?
-
android
-
android-architecture-components
-
android-jetpack
-
android-architecture-navigation
-
android-jetpack-navigation
我是 Android 开发新手,尤其是使用导航组件。我使用这样的代码从一个目的地(片段 A)移动到另一个目的地(片段 B)
val BDestination = AFragmentDirections.actionToB(userData)
findNavController().navigate(BDestination)
当我从fragmentB返回到fragment A时,fragmentA中的onCreateView
方法总是被触发。我希望如果我从 B 回到 A,那么它不会触发 onCreateView
方法,它只会触发 fragmentA
中的 onResume
方法
这是正常行为吗?我可以改变吗?因为如果调用 onCreateView
方法,我的 fragmentA 中的所有属性都将消失。
如果您查看下面的生命周期,您会发现一旦离开 activity 视图就会通过 onDestroyView()
方法销毁,但是,当您返回它时,它会触发 onCreateView()
方法。这是片段生命周期的正常行为。如果您有不希望每次将视图置于最前沿的代码 运行,那么我建议您将它们放在布尔 if() 块中。
android
android-architecture-components
android-jetpack
android-architecture-navigation
android-jetpack-navigation
我是 Android 开发新手,尤其是使用导航组件。我使用这样的代码从一个目的地(片段 A)移动到另一个目的地(片段 B)
val BDestination = AFragmentDirections.actionToB(userData)
findNavController().navigate(BDestination)
当我从fragmentB返回到fragment A时,fragmentA中的onCreateView
方法总是被触发。我希望如果我从 B 回到 A,那么它不会触发 onCreateView
方法,它只会触发 fragmentA
onResume
方法
这是正常行为吗?我可以改变吗?因为如果调用 onCreateView
方法,我的 fragmentA 中的所有属性都将消失。
如果您查看下面的生命周期,您会发现一旦离开 activity 视图就会通过 onDestroyView()
方法销毁,但是,当您返回它时,它会触发 onCreateView()
方法。这是片段生命周期的正常行为。如果您有不希望每次将视图置于最前沿的代码 运行,那么我建议您将它们放在布尔 if() 块中。