添加对新的目的地类型的支持
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
NavController
类型依靠一个或多个 Navigator
对象执行导航操作。默认情况下,NavController
支持通过以下方式离开导航图:使用 ActivityNavigator
类及其嵌套的 ActivityNavigator.Destination
类导航到另一 activity。
若要导航到任何其他类型的目的地,必须向 NavController
添加一个或多个其他 Navigator
对象。例如,将 fragment 用作目的地时,NavHostFragment
会自动将 FragmentNavigator
类添加到其 NavController
中。
若要向 NavController
添加新的 Navigator
对象,请依次使用 getNavigatorProvider()
方法和 addNavigator()
方法。
以下代码展示了向 NavController
添加 CustomNavigator
对象的示例:
Kotlin
val customNavigator = CustomNavigator()
navController.navigatorProvider += customNavigator
Java
CustomNavigator customNavigator = new CustomNavigator();
navController.getNavigatorProvider().addNavigator(customNavigator);
大多数 Navigator
类具有嵌套的目的地子类。该子类可用于指定您的目的地独有的其他属性。如需详细了解目的地子类,请查看相应 Navigator
类的参考文档。
其他资源
如需详细了解 Navigation,请参阅下面列出的其他资源。
示例
Codelab
视频
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-09-12。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-09-12\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-09-12。"]]