我在一个小示例应用程序中使用Android导航组件。因此,我的工具栏中有一个导航抽屉以及一个“汉堡”按钮,用于打开抽屉。
在抽屉中,有一个打开特定片段的选项(说WebViewFragment)。在MainActivity中设置appConfiguration时,我传入了一组所有可以通过DrawerLayout访问的片段。
appBarConfiguration =
AppBarConfiguration.Builder(
setOf(
R.id.newsFragment,
R.id.webViewFragment,
R.id.loginFragment
)
)
.setDrawerLayout(drawer)
.build()
如果我不这样做,当用户导航到其中一个片段时,“汉堡”按钮将变为后退箭头,以指示可能的后退导航。
一切正常,但是当我想重用可通过抽屉布局访问的“开始”片段之一时,我遇到了问题。当我想从MainFragment导航到WebViewFragment时,例如通过某个按钮,我希望抽屉按钮变为后退按钮。但是,由于我将WebViewFragment传递给AppConfiguration,所以这似乎是不可能的,它似乎被设置为“ root”或“ start destination”。有谁知道不包括从WebViewFragment继承的答案。 我想避免这种情况,因为我不喜欢继承,而且我认为这不是解决此问题的正确方法。
我真的很感谢任何建议。