android - findNavController 和孤立的片段
问题描述
我BottomSheetDialogFragment
使用显示功能从主片段启动一个(导航组件无法启动 DialogFragments)。
现在在BottomSheetDialogFragment
我有一个按钮可以移动到一个详细的活动。
我BottomSheetDialogFragment
在图中定义(隔离),它指向详细活动。
但是当我尝试导航时,它找不到 navController。是否可以将 navController 传递给这个孤立的片段?
MainFragment 到 Detail 正在工作 DialogFragment 到 Detail 不工作。
我试过: - findNavController:导航未设置 - activity.findNavController(...)
解决方案
但是当我尝试导航时,它找不到 navController。这就是导航组件的工作方式。
是否可以将 navController 传递给这个孤立的片段?我希望您不要这样做,替换 navController 并不是您的情况的完美解决方案。
该怎么办?
您可以将新nav.xml
的父活动和(孤立的)片段作为子活动,并从BottomSheetDialogFragment
(孤立的)片段活动导航。
否则,我看不到任何阻止您在其中添加相关片段的问题nav.xml
。
另外你可能需要遵守导航组件的约定,使用导航组件时不要使用show()
函数,你可能会错过一些优势!
您真的不需要显示功能,请参见:-
解释:-
您可以有一个父活动并将其主题设置为对话框,因此所有片段(内部nav.xml
)都将是对话框..
我以前在我的一个应用程序中使用过这个技巧。
推荐阅读
- reactjs - redux 中的状态管理
- selenium - 如何停止扩展背景页面以在 selenium java 中加载
- php - Codeigniter 4:使用 Encryption::createKey() 的未定义类型“App\Controllers\Encryption”
- sql - (Oracle)跨列获取最大值
- excel - VBA:在元素上调用事件监听器?
- git - 我可以在 Android Studio 中为分支添加和显示评论吗?
- python - 如何将moviepy VideoClip保存到文件中
- python - 当我想下载 youtube 播放列表时,我用 puqt5 编写了一个下载应用程序,但出现错误
- java - Spring boot:启动 ApplicationContext 时出错。要显示条件报告,请在启用“调试”的情况下重新运行您的应用程序
- javascript - 表格的列和行重新排序,拖放也可以在 React js 中编辑表格单元格