android-viewmodel 相关问题

Jetpack Compose 显示来自 lambda 的值

我基本上有一个可组合函数,其中 lambda 返回一个文本可组合项应该显示的值。 数据类 CustomUiState( val 查找列表:HashMap 我基本上有一个可组合函数,其中 lambda 返回一个文本可组合项应该显示的值。 data class CustomUiState( val lookupList: HashMap<UUID, MutableList<String>> = HashMap() ) class CustomViewModel( ): ViewModel() { private val _uiState: MutableStateFlow(CustomUiState()) val uiState: StateFlow<CustomUiState> = _uiState.asStateFlow() fun getValue(index: Int) { // complex lookup with lookupList return ... } fun updateValue(i: Int, s: String) { _uiState.update { state -> state.copy( // Update lookupList with new value lookupList = ... ) } } } @Composable fun Screen(viewModel: CustomViewModel) { Widget( value = { viewModel.getValue(it) }, onValueChanged = { i, s viewModel.updateValue(i, s) } ) } @Composable fun Widget( value: (Int) -> String, onValueChanged: (Int, String) -> Unit ) { LazyRow() { items(4) { // This does not work // Because Compose do not recompose when value(it) changes Text( text = value(it), //lots of other configurations ... ) } } } 我尝试过谷歌搜索,但没有成功。 我需要更改什么才能使其正常工作? 添加文本只是因为 StackOverflow 不允许我在问题中发布过少的文本。 以这种方式更改代码,看看它是否会根据值更改进行重组。 LazyRow() { items(4) { // This does not work // Because Compose do not recompose when value(it) changes var textValue by remember(value(it)) { mutableStateOf(value(it)) } Text( text = textValue, //lots of other configurations ... ) } }

回答 1 投票 0

Android:Jetpack Compose:如何获取 Composable 内 StateFlow 值更改的通知?

我有一个 ViewModel,其中包含以下列表作为 StateFlow 私有 val _mutableStateTopicItemList = MutableStateFlow>(listOf()) val stateTopicItemList =

回答 2 投票 0

在 SnapshotStateList 中添加单个项目会导致所有可见项目重新组合

我有一个场景,将项目添加到 ViewModel 内的 SnapshotStateList 中。此项目列表使用 UI 中的 LazyColumn 显示。 这是我的 ViewModel 类 类 MainView...

回答 1 投票 0

可组合函数无限地从视图模型获取值

我是Android开发初学者,不知道如何解决这个问题。 有一个简单的视图模型,其中包含 1 个变量: var testQuestionsAmount by mutableStateOf(10) 私人套装 ...

回答 1 投票 0

为什么lifecycleScope不等待viewmodelscope完成?

我想要一个按钮在导航到另一个片段之前执行viewmodel的方法,但似乎它并没有等待所有挂起功能完成后才更改屏幕: 视图.类

回答 1 投票 0

与普通观察者共享视图模型Android

在我的用例中,我使用与一些常见观察者共享的视图模型。当三个片段添加到返回堆栈时,视图模型将观察到所有三个片段。然而,我只需要...

回答 1 投票 0

Jetpack Compose 在方向更改时保存状态

我正在使用 Android Jetpack 的 Compose,并且一直在尝试找出如何保存方向更改的状态。 我的思路是让一个类成为 ViewModel。因为当我

回答 2 投票 0

未解析的参考 viewModels() Hilt

我已经实现了互联网上提供的所有依赖项,但仍然无法解决问题。引用了此链接以及 stackoverflow 上的其他链接,但无法解决问题。 我面临着...

回答 0 投票 0

为什么这个房间查询结果没有显示任何内容

所以我的房间数据库中的DAO包含这个查询 @道 接口 RecordsDAO { //其他查询 @Query("SELECT * FROM BloodPressureRecords WHERE recordStatus IN (:list) ORDER BY create...

回答 2 投票 0

如何在模块中添加视图模型?

在Dagger中,如何将模型添加到Module中? 例如,我通过以下方式添加演示者: @模块 类 AboutModule(val appContext: Context) { @FragmentScope @提供 有趣

回答 3 投票 0

如何在具有回收器视图的视图模型中选择和存储单选组按钮的值

`有一个应用程序,用户将使用编辑文本提供纸杯蛋糕的数量,在下一个片段中,我想使用单选按钮组按钮提供所有纸杯蛋糕的口味选择,该按钮...

回答 1 投票 0

如何使用协程异步处理数据?

我需要执行4个并行请求。这是我的代码: 暂停乐趣 fetchAsyncData() = coroutineScope { valfirst = async {repository.taskFirst()} val Second = async {repository.taskSeco...

回答 3 投票 0

ViewModel LiveData 在 Android 中屏幕旋转后发出空列表

我遇到了有关屏幕旋转期间 ViewModel 中 LiveData 行为的问题。 我的应用程序围绕 MVVM 模式构建,包括一个观察 LiveData 的 Activity<

回答 1 投票 0

LiveData 在 ViewModel 测试期间返回 NullPointer IsMainThread 错误

尝试观察视图模型中的实时数据时,我的视图模型单元测试一直失败。我从文档中添加了两条规则,即:InstantTaskExecutorRule 和 MainCoroutineRule。我也注射...

回答 1 投票 0

如何在依赖于 MutableStateFlow 的 ViewModel 中维护密封类变体的状态

我有一个 UI 取决于密封类的值。根据密封类的类型,此 UI 元素具有不同的形式。此外,密封类的每个变体都包含

回答 1 投票 0

如何高效观察ViewModel中列表的变化?

假设我的ViewModel中有一个myList:MutableList数据,我希望在我修改这个myList时界面能够自动观察到变化。 以下代码可以工作: 类

回答 0 投票 0

Jetpack Compose 无法观察 MutableLiveData

查看 viewModel.todoLists.observe(lifecycleOwner){ it?.let { label.value = it.toString() } } 视图模型 val todoLists : MutableLiveData = MutableLiveData() ...

回答 2 投票 0

Android:使用依赖项 ViewModelProviderFactory 初始化 ViewModel 的正确方法

我有两个 ViewModel,它们依赖于其他对象,而这些对象又可能依赖于上下文 (SettingsDataStore)。现在为了让上下文远离我的 ViewModels,我正在关注

回答 1 投票 0

Android Hilt 将“辅助”参数传递给 ViewModel 构造函数

至于 2023,除了这种方式之外,还有更好或更少的样板方法将辅助参数注入 ViewModel 吗? 类 PlantDetailViewModel @AssistedInject 构造函数( plantRepos...

回答 0 投票 0

将 android 中的数据库持久状态和仅 UI 状态与 kotlin 相结合的好方法是什么?

我正在使用 Jetpack compose 和 Room 作为数据库解决方案为 android 编写一个 Todo 应用程序。 对于每个待办事项/任务,我都有一些数据需要保存在数据库中(例如文本、截止日期……)和……

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.