在Kotlin中以编程方式使用AndroidX导航架构组件,而不使用XML,可以通过以下步骤实现:
implementation "androidx.navigation:navigation-fragment-ktx:2.3.5"
implementation "androidx.navigation:navigation-ui-ktx:2.3.5"
navigation
的文件夹,并在其中创建一个名为nav_graph.xml
的XML文件。在该文件中,定义应用程序的各个目的地(Destination)和导航路径(Action)。NavController
对象来管理导航。你可以通过NavHostFragment
来获取该对象。例如,在Activity中:val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
NavController
对象来执行导航操作。例如,使用navigate()
方法来导航到目标目的地:navController.navigate(R.id.destination_id)
其中,destination_id
是你在导航图中定义的目的地的ID。
Bundle
对象来传递。例如,创建一个Bundle
对象并设置参数值:val bundle = Bundle()
bundle.putString("key", "value")
然后,将该Bundle
对象作为第二个参数传递给navigate()
方法:
navController.navigate(R.id.destination_id, bundle)
addOnDestinationChangedListener()
方法添加一个目的地变化的监听器。例如:navController.addOnDestinationChangedListener { _, destination, _ ->
if (destination.id == R.id.destination_id) {
// 执行你的操作
}
}
领取专属 10元无门槛券
手把手带您无忧上云