使用viewModelScope时爆红

1,019 阅读1分钟

问题

我们在ViewModel中想要启动协程,使用viewModelScope来启动协程时,发现写viewModelScope时ide没有给出提示,且是如下所示爆红状态

image.png

原因

这是因为我们默认创建的工程是没有引入相关的依赖

解决

1. 查看文档

我们去官网看ViewModel的相关介绍,搜索viewModelScope

image.png

可以看到蓝色viewModelScope字样,这是一个超链接,点击进入定位到viewModelScope相关文档后,如下,有这么一段

image.png

可以看到viewModelScope相关内容是属于KTX扩展中的内容,所以我们想要使用该功能,我们得加上对应的依赖。

我们点击KTX扩展,找到ViewModel KTX的扩展,可以看到我们需要如何添加该KTX扩展依赖

image.png

2. 添加依赖

到我们需要使用viewModelScope功能的模块下的build.gradle.kts(或是build.gradle)文件中,添加如下依赖

dependencies {
    implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")
}

3. 重新同步工程,下载依赖

点击gradle的同步按钮(或使用快捷键ctrl + shift + O)

image.png

4. 导包

可以看到gradle同步完工程后,我们鼠标放到viewModelScope下,ide就会给出提示了,说明我们已经添加了相关依赖,只是还没有导包

image.png

我们只需要alt + enter键将包导入即可

image.png

image.png

至此,viewModelScope爆红问题解决。