【发布时间】:2019-07-24 05:51:55
【问题描述】:
【问题讨论】:
-
DeepLinkFragmentArgsFlowStepFragmentArgsFlowStepFragmentDirections这都是自动生成的类。
标签: android androidx android-jetpack navigationcontroller
【问题讨论】:
DeepLinkFragmentArgs FlowStepFragmentArgs FlowStepFragmentDirections 这都是自动生成的类。
标签: android androidx android-jetpack navigationcontroller
改变这个
implementation 'android.arch.navigation:navigation-fragment-ktx:2.2.0-alpha01'
implementation 'android.arch.navigation:navigation-ui-ktx:2.2.0-alpha01'
到这里:
implementation 'androidx.navigation:navigation-fragment-ktx:2.2.0-alpha01'
implementation 'androidx.navigation:navigation-ui-ktx:2.2.0-alpha01'
注意 android.arch.navigation 已替换为 androidx.navigation
另外,请确保将此插件应用到 build.gradle 之上:
apply plugin: "androidx.navigation.safeargs.kotlin"
这对于项目级别 build.gradle 的依赖项:
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-rc01"
【讨论】:
如果您使用的是 kotlin 和 androidX,请替换此
apply plugin: "androidx.navigation.safeargs"
与
apply plugin: "androidx.navigation.safeargs.kotlin"
在项目级别 build.gradle
dependencies {
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-alpha01"
}
在应用级别 build.gradle
def nav_version = "2.1.0-alpha01"
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"
如果你使用的是 kotlin Ktx
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
希望这对其他人也有帮助。对我也有帮助
【讨论】:
尝试添加
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha05"
代替
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-rc02"
【讨论】:
Android Studio 3.3.1 版本也有类似的问题,但解决方法很简单。关闭项目并再次导入您的项目。你会看到结果。
【讨论】:
在您的 build.gradle 应用级别添加:
apply plugin: 'androidx.navigation.safeargs'
更新:
这个codelab很老了,尽量不要更新库。
【讨论】:
apply plugin: 'androidx.navigation.safeargs' 已经在应用级 gradle 中了。
我尝试了上面写的所有东西,即添加所有插件和依赖项(虽然这是完全正确的)但我犯了这个愚蠢的错误 -> 我在片段之外创建了 navArgs 变量
不要 ->
private val args by navArgs<VideoCallFragmentArgs>()
class YourFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_video_call, container, false)
}
}
始终在片段内创建 navArgs 变量。
执行 ->
class YourFragment : Fragment() {
private val args by navArgs<VideoCallFragmentArgs>()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_video_call, container, false)
}
}
【讨论】: