You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Hilt在Compose可组合函数中获取ViewModel

Hilt Compose 注入ViewModel解决方案

你不需要为@Composable可组合函数添加@AndroidEntryPoint注解,Hilt官方提供了专门的Compose扩展能力,可以直接在可组合函数内部完成ViewModel的依赖注入,实现方案如下:

1. 添加配套依赖

首先在模块级build配置文件中引入Hilt和Compose的适配依赖,版本需与项目内已有的Hilt、Compose版本保持兼容:

  • Groovy格式(build.gradle)
    implementation "androidx.hilt:hilt-navigation-compose:1.2.0"
    
  • Kotlin DSL格式(build.gradle.kts)
    implementation("androidx.hilt:hilt-navigation-compose:1.2.0")
    

2. 可组合函数内直接获取ViewModel

直接在需要使用ViewModel的可组合函数中调用hiltViewModel()方法即可,无需额外注解配置:

@Composable
fun OrderScreen(
    // Hilt自动完成注入,无需外部传参
    orderViewModel: OrderViewModel = hiltViewModel()
) {
    // 内部直接使用viewModel执行业务逻辑
}

补充说明

  • 默认情况下该方式注入的ViewModel生命周期,和可组合函数依附的Activity/Fragment生命周期绑定;如果配合Compose Navigation使用,注入的ViewModel会默认和当前导航目的地的生命周期绑定,退出该目的地时ViewModel会自动回收。
  • 如果你当前从Activity传递ViewModel的方案已经能满足业务需求,可以继续使用,上述方案为更解耦的可选实现。

内容的提问来源于stack exchange,提问作者Rizwan Minhas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:51:01