我使用hilt依赖注入创建了一个jetpack compose应用程序。我使用glance创建了一个小部件,它工作得很成功。现在我想创建一个viewmodel,并使用相同的机制或不同的机制注入。我用不同的方法进行了测试。但我没有得到解决方案。
我使用jetpack compose导航来浏览视图,我只在主应用程序中使用了一个activity。
这里是我的代码相关的一瞥小部件。如果你想了解更多的细节留下评论。我分享了相关数据。
class CustomGlanceWidgetReceiver : GlanceAppWidgetReceiver() {
override val glanceAppWidget: GlanceAppWidget = MyAppWidget()
}
//@AndroidEntryPoint
class MyAppWidget : GlanceAppWidget(){
override suspend fun provideGlance(context: Context, id: GlanceId) {
provideContent {
MyContent()
}
}
}
@Composable
private fun MyContent(
//viewModel: BaseEntryWidgetViewModel = hiltViewModel()
) {
Column(
modifier = GlanceModifier.fillMaxSize(),
verticalAlignment = Alignment.Top,
horizontalAlignment = Alignment.CenterHorizontally
) {
Row(horizontalAlignment = Alignment.CenterHorizontally) {
TextField(value = "", onValueChange = {}, label = {
Text(text = "Title")
})
TextField(value = "", onValueChange = {}, label = {
Text(text = "Amount")
})
Button(
text = "Save",
onClick = { }
)
Button(
text = "Work",
onClick = {}
)
}
}
}
@HiltViewModel
class BaseEntryWidgetViewModel @Inject constructor(
private val wallletRepositoryService: WalletRepositoryService
):ViewModel(){
//
}
字符串
我使用hilt依赖注入创建了一个jetpack compose应用程序。我使用glance创建了一个小部件,它工作得很成功。现在我想创建一个viewmodel,并使用相同的机制或不同的机制注入。我用不同的方法进行了测试。但我没有得到解决方案。
我使用jetpack compose导航来浏览视图,我只在主应用程序中使用了一个activity。
这里是我的代码相关的一瞥小部件。如果你想了解更多的细节留下评论。我分享了相关数据。
class CustomGlanceWidgetReceiver : GlanceAppWidgetReceiver() {
override val glanceAppWidget: GlanceAppWidget = MyAppWidget()
}
//@AndroidEntryPoint
class MyAppWidget : GlanceAppWidget(){
override suspend fun provideGlance(context: Context, id: GlanceId) {
provideContent {
MyContent()
}
}
}
@Composable
private fun MyContent(
//viewModel: BaseEntryWidgetViewModel = hiltViewModel()
) {
Column(
modifier = GlanceModifier.fillMaxSize(),
verticalAlignment = Alignment.Top,
horizontalAlignment = Alignment.CenterHorizontally
) {
Row(horizontalAlignment = Alignment.CenterHorizontally) {
TextField(value = "", onValueChange = {}, label = {
Text(text = "Title")
})
TextField(value = "", onValueChange = {}, label = {
Text(text = "Amount")
})
Button(
text = "Save",
onClick = { }
)
Button(
text = "Work",
onClick = {}
)
}
}
}
@HiltViewModel
class BaseEntryWidgetViewModel @Inject constructor(
private val wallletRepositoryService: WalletRepositoryService
):ViewModel(){
//
}
型
1条答案
按热度按时间ff29svar1#
取消注解@ PandidEntryPoint并添加以下内容:
你可以在函数体中声明视图模型:
字符串
别忘了加上:
型
并在manifest文件中添加:
型
让我知道如果它帮助你!