在选项卡之间导航时,Android BottomNavigation显示“向上按钮”

inkz8wg9  于 2022-12-31  发布在  Android
关注(0)|答案(2)|浏览(179)

我在我的应用程序中使用了底部导航栏,当我使用navController启用操作栏时,在标签页之间导航时会显示向上按钮。
[图1:当我在主目的地时,向上按钮消失]

[图2:在选项卡之间导航时显示向上按钮]

当我删除MainActivity中的这一行时,它消失了,但随后我失去了整个应用程序的向上按钮:

setUpActionBarWithNavCotroller(navController)

我怎样才能使“向上按钮”disapper从底部导航标签?

db2dz4w8

db2dz4w81#

您的TasksCategoriestop-level目的地。因此,您必须将它们分配给navController。以下是官方文档。

步骤1:

初始化AppBarConfiguration,如下所示

val appBarConfiguration = AppBarConfiguration(
        topLevelDestinationIds = setOf(R.id.tasksFragment, R.id.categoriesFragment)
    )
步骤2:

使用Toolbar将它们分配给navController

findViewById<Toolbar>(R.id.toolbar)
        .setupWithNavController(navController, appBarConfiguration)

ActionBar

setupActionBarWithNavController(navController, appBarConfiguration)
l3zydbqr

l3zydbqr2#

我做了一些进一步的搜索,我发现它实际上是可以设置多个顶级目的地手动,所以"向上按钮"不会显示在他们。使用AppBarConfiguration添加这些目的地。

一个月一个月

class MainActivity : AppCompatActivity() {

    private lateinit var navController: NavController

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
        navController = navHostFragment.navController

        binding.bottomNavigationView.setupWithNavController(navController)

        // Adding multiple top-level destinations using AppBarConfigutaion
        val appBarConfiguration = AppBarConfiguration(setOf(R.id.categoriesFragment, R.id.tasksFragment))
        setupActionBarWithNavController(navController, appBarConfiguration)
    }

    override fun onSupportNavigateUp(): Boolean {
        return navController.navigateUp() || super.onSupportNavigateUp()
    }
}

相关问题