android - 使用 Android 导航组件在返回堆栈上重用 startDestination 片段
问题描述
我在一个小示例应用程序中使用 Android 导航组件。所以我的工具栏中有一个导航抽屉和一个汉堡按钮来打开抽屉。
在抽屉里有一个选项可以打开一个特定的片段(比如 WebViewFragment)。在我的 MainActivity 中设置 appConfiguration 时,我传入了一组可以通过 DrawerLayout 访问的所有片段。
appBarConfiguration =
AppBarConfiguration.Builder(
setOf(
R.id.newsFragment,
R.id.webViewFragment,
R.id.loginFragment
)
)
.setDrawerLayout(drawer)
.build()
如果我不这样做,当用户导航到其中一个片段时,Burger 按钮将变为后退箭头以指示可能的后退导航。
这一切都很好,但是当我想重用可以通过抽屉布局访问的“开始”片段之一时,我遇到了问题。当我想从 MainFragment 导航到 WebViewFragment 时,例如通过某个按钮,我希望抽屉按钮更改为后退按钮。但是由于我将 WebViewFragment 传递给了 AppConfiguration,这似乎是不可能的,它似乎被固定为“根”或“起始目的地”。有谁知道不包括从 WebViewFragment 继承的答案。我想避免这种情况,因为我不喜欢继承,而且我认为这不是处理这个问题的正确方法。
我真的很感激任何建议。
解决方案
推荐阅读
- ios - 如何分配模板文件的本地化名称?
- amazon-web-services - 如何使用预签名 URL 将对象“放入”私有 S3 存储桶?
- android - 在byteArray中传递(通过意图)jpg图像文件时Android startActivity错误,而不是传递png图像文件时
- css - 将JS生成的侧边栏旁边的内容移到右边
- c# - 当我的播放器死机时,如何关闭特定的音频?
- regex - 谷歌表格中的正则表达式
- youtube-data-api - 将音乐视频放入 iFrame 时“此视频不可用”
- node.js - PubSub 阻止应用引擎运行
- cassandra - 无法连接到 Cassandra(所有主机尝试查询失败
- google-colaboratory - 如何使用 `python setup.py install` 在协作中安装包