【发布时间】:2021-07-01 14:34:57
【问题描述】:
所以我有一个名为“ListScreen”的 kotlin 文件(它不是一个类!只是一个带有可组合函数的 .kt 文件),我正在使用组合导航图系统处理事务。
现在我正在尝试访问我的ViewModel,它在“ListScreen”文件中用@HiltViewModel 表示。
显然,在过去,有一种方法可以访问ViewModels,如下所示:
viewModel: PokemonListViewModel = hiltNavGraphViewModels()
但这现在不起作用。我该怎么做?
这是我的ViewModel 课程:
@HiltViewModel
class PokemonListViewModel @Inject constructor(
private val repository: PokemonRepository
) : ViewModel() {
fun calcDominantColor(
drawable: Drawable,
onFinish: (Color) -> Unit
) {
val bmp = (drawable as BitmapDrawable).bitmap.copy(Bitmap.Config.ARGB_8888, true)
Palette.from(bmp).generate { palette ->
palette?.dominantSwatch?.rgb?.let {
onFinish(Color(it))
}
}
}
}
这是不工作的代码块:
@Composable
fun PokedexEntry(
entry: PokedexListEntry,
navController: NavController,
modifier: Modifier = Modifier,
viewModel: PokemonListViewModel = hiltNavGraphViewModels()
)
【问题讨论】:
标签: android viewmodel android-jetpack-compose dagger-hilt android-navigation-graph