我有一个带有 1 个按钮的自定义对话框片段。当这个按钮什么都不做时,我有 1 个案例。 当用户点击按钮时,我调用这个方法来保存对话框中的数据:
fun <T : Any> Fragment.setNavigationResult(
result: T, key: String,
navController: NavController = findNavController()
) {
navController.previousBackStackEntry?.savedStateHandle?.set(key, result)
}
我在 Fragment(onViewCreated) 中有函数来听取这样的对话框的结果:
inline fun <T : Any> Fragment.registerForNavigationResult(
key: String,
crossinline resultEvent: (T) -> Unit
) {
findNavController()
.currentBackStackEntry
?.savedStateHandle
?.getLiveData<T>(key)
?.observe(viewLifecycleOwner) {
resultEvent.invoke(it)
}
}
但它没有被调用。 情况 1:用户看到这个对话框,锁定他的屏幕几分钟,然后再次打开应用程序,按钮没有
t work. i don
t 从 savedStateHandle 接收实时数据中的数据。如果用户不锁定屏幕,一切正常。
也许有人知道如何解决它?