android - 检测导航组件中的弹出
问题描述
在导航组件中,如何检测片段是否从弹出事件中被带到前面?
我从 A 到 B,现在我使用返回键关闭 B,它返回到 A,现在在 A(在onViewCreated事件中)我想检测它来自 B。
解决方案
这是我的解决方案。
在 A 中,添加一个具有默认值的导航参数false
(在 nav_graph.xml 中)
在 B 中,将导航添加回 A。要处理按下的后退按钮,请在中添加以下内容onCreate()
requireActivity().onBackPressedDispatcher.addCallback {
val action = BDirections.actionBFragmentAFragment(true)
findNavController().navigate(action)
}
现在您可以确定 A 是如何出现的。此外,使用popUpTo正确处理循环逻辑。如果您发现这种方法有任何缺陷,请告诉我。
推荐阅读
- c# - 用于维护模型属性的 c# MVC 编码模式
- django - IIS 上的 Django:由于大文件上传时的 FastCGI 请求超时而导致调试 IIS 错误
- plugins - 使用 Notepad++ 作为 HEX 编辑器
- java - java.lang.IllegalStateException: FragmentManager 已被销毁
- python - 在 Windows 10 中使用 python 来启用鼠标环绕
- python - 出现此错误-__init__() 得到了一个意外的关键字参数“实例”
- python - 一对多关系 Django
- .net-core - 未找到配置文件“config.json”且不是可选的
- ruby-on-rails - Rails、Bootstrap 和枚举下拉列表 - 值未保存
- postgresql - POSTGIS ST_DISTANCE 函数和结果的问题