问题
我们在ViewModel中想要启动协程,使用viewModelScope来启动协程时,发现写viewModelScope时ide没有给出提示,且是如下所示爆红状态
原因
这是因为我们默认创建的工程是没有引入相关的依赖
解决
1. 查看文档
我们去官网看ViewModel的相关介绍,搜索viewModelScope
可以看到蓝色viewModelScope字样,这是一个超链接,点击进入定位到viewModelScope相关文档后,如下,有这么一段
可以看到viewModelScope
相关内容是属于KTX扩展中的内容,所以我们想要使用该功能,我们得加上对应的依赖。
我们点击KTX扩展,找到ViewModel KTX
的扩展,可以看到我们需要如何添加该KTX扩展依赖
2. 添加依赖
到我们需要使用viewModelScope
功能的模块下的build.gradle.kts
(或是build.gradle)文件中,添加如下依赖
dependencies {
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")
}
3. 重新同步工程,下载依赖
点击gradle的同步按钮(或使用快捷键ctrl + shift + O)
4. 导包
可以看到gradle同步完工程后,我们鼠标放到viewModelScope
下,ide就会给出提示了,说明我们已经添加了相关依赖,只是还没有导包
我们只需要alt + enter
键将包导入即可
至此,viewModelScope爆红问题解决。