【发布时间】:2021-12-06 08:47:14
【问题描述】:
Android 文档建议使用深层链接进行模块间导航。 https://developer.android.com/guide/navigation/navigation-multi-module#across
请注意以下内容的深层链接:
app:uri="android-app://example.google.app/fragment_two"
然后在代码中引用相同的 url:
val request = NavDeepLinkRequest.Builder
.fromUri("android-app://example.google.app/fragment_two".toUri())
.build()
示例很清楚,但它使用硬编码字符串,最好将其存储在一个位置。我可以使用字符串资源,如下所示:
// values/strings.xml
<string name="fragment_two_url">android-app://example.google.app/fragment_two/</string>
// nav_graph.xml
app:uri="@string/fragment_two_url"
// Kotlin code
val request = NavDeepLinkRequest.Builder
.fromUri(context.getString(R.string.fragment_two_url))
.build()
但是,如果深层链接有参数,这将不起作用,如下所示:
app:uri="android-app://example.google.app/fragment_two/{arg}"
我们不能像上面那样插入字符串资源。
// This won't work
app:uri="@string/fragment_two_url/{arg}"
有没有办法创建一个可以在 Kotlin 代码和导航图 XML 中轻松引用的常量?
【问题讨论】:
标签: android xml navigation android-jetpack-navigation android-deep-link