gpt4 book ai didi

android - 底部导航 View 。使用深层链接导航到目的地导致也在第一个选项卡中添加目的地 fragment

转载 作者:行者123 更新时间:2023-12-04 23:59:15 25 4
gpt4 key购买 nike

假设我们有一个带有 4 个选项卡的底部导航 View ,我们有一个用于 4 个选项卡的 fragment 的深层链接,因此当从这个深层链接导航到 4 个选项卡时 - 它可以正常工作,但之后手动选择第一个选项卡选项卡,第一个选项卡中也添加了 4 个选项卡的 fragment 。

  1. 我有一个包含 4 个 fragment 的导航图

  2. 在创建我的 Activity 时,我使用导航 Controller 设置底部 View

                navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as? NavHostFragment
    navController = navHostFragment?.navController
    navController?.setGraph(R.navigation.nav_unauth_state)
    navView.inflateMenu(getBottomNavViewMenu())
    navController?.let {
    navView.setupWithNavController(it)
    }

  3. 在此 Activity 的 list 中,我添加了 <nav-graph android:value="@navigation/nav_unauth_state" />

  4. 在 frgament 的 nav_unauth_state 中我设置了深层链接

            android:id="@+id/deepLink2"
app:uri="https://<my_secret_url>/{action}" />

最佳答案

我用这个解决方案自己解决了它

navView.setOnItemSelectedListener { menuItem ->
val builder = NavOptions.Builder().setLaunchSingleTop(true).setRestoreState(false)
val graph = navController?.currentDestination?.parent
val destination = graph?.findNode(menuItem.itemId)
if (menuItem.order and Menu.CATEGORY_SECONDARY == 0) {
navController?.graph?.findStartDestination()?.id?.let {
builder.setPopUpTo(
it,
inclusive = false,
saveState = true
)
}
}
val options = builder.build()
destination?.id?.let { id -> navController.navigate(id, null, options) }
return@setOnItemSelectedListener true
}

关于android - 底部导航 View 。使用深层链接导航到目的地导致也在第一个选项卡中添加目的地 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68015208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com