通过Android导航组件在堆栈上重用startDestination片段

时间:2019-09-12 15:05:22

标签: android kotlin android-architecture-navigation

我在一个小示例应用程序中使用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继承的答案。 我想避免这种情况,因为我不喜欢继承,而且我认为这不是解决此问题的正确方法。

我真的很感谢任何建议。

0 个答案:

没有答案