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 ... ) } }
Android:Jetpack Compose:如何获取 Composable 内 StateFlow 值更改的通知?
我有一个 ViewModel,其中包含以下列表作为 StateFlow 私有 val _mutableStateTopicItemList = MutableStateFlow>(listOf()) val stateTopicItemList =
在 SnapshotStateList 中添加单个项目会导致所有可见项目重新组合
我有一个场景,将项目添加到 ViewModel 内的 SnapshotStateList 中。此项目列表使用 UI 中的 LazyColumn 显示。 这是我的 ViewModel 类 类 MainView...
我是Android开发初学者,不知道如何解决这个问题。 有一个简单的视图模型,其中包含 1 个变量: var testQuestionsAmount by mutableStateOf(10) 私人套装 ...
为什么lifecycleScope不等待viewmodelscope完成?
我想要一个按钮在导航到另一个片段之前执行viewmodel的方法,但似乎它并没有等待所有挂起功能完成后才更改屏幕: 视图.类
在我的用例中,我使用与一些常见观察者共享的视图模型。当三个片段添加到返回堆栈时,视图模型将观察到所有三个片段。然而,我只需要...
我正在使用 Android Jetpack 的 Compose,并且一直在尝试找出如何保存方向更改的状态。 我的思路是让一个类成为 ViewModel。因为当我
我已经实现了互联网上提供的所有依赖项,但仍然无法解决问题。引用了此链接以及 stackoverflow 上的其他链接,但无法解决问题。 我面临着...
所以我的房间数据库中的DAO包含这个查询 @道 接口 RecordsDAO { //其他查询 @Query("SELECT * FROM BloodPressureRecords WHERE recordStatus IN (:list) ORDER BY create...
在Dagger中,如何将模型添加到Module中? 例如,我通过以下方式添加演示者: @模块 类 AboutModule(val appContext: Context) { @FragmentScope @提供 有趣
`有一个应用程序,用户将使用编辑文本提供纸杯蛋糕的数量,在下一个片段中,我想使用单选按钮组按钮提供所有纸杯蛋糕的口味选择,该按钮...
我需要执行4个并行请求。这是我的代码: 暂停乐趣 fetchAsyncData() = coroutineScope { valfirst = async {repository.taskFirst()} val Second = async {repository.taskSeco...
ViewModel LiveData 在 Android 中屏幕旋转后发出空列表
我遇到了有关屏幕旋转期间 ViewModel 中 LiveData 行为的问题。 我的应用程序围绕 MVVM 模式构建,包括一个观察 LiveData 的 Activity<
LiveData 在 ViewModel 测试期间返回 NullPointer IsMainThread 错误
尝试观察视图模型中的实时数据时,我的视图模型单元测试一直失败。我从文档中添加了两条规则,即:InstantTaskExecutorRule 和 MainCoroutineRule。我也注射...
如何在依赖于 MutableStateFlow 的 ViewModel 中维护密封类变体的状态
我有一个 UI 取决于密封类的值。根据密封类的类型,此 UI 元素具有不同的形式。此外,密封类的每个变体都包含
假设我的ViewModel中有一个myList:MutableList数据,我希望在我修改这个myList时界面能够自动观察到变化。 以下代码可以工作: 类
Jetpack Compose 无法观察 MutableLiveData
查看 viewModel.todoLists.observe(lifecycleOwner){ it?.let { label.value = it.toString() } } 视图模型 val todoLists : MutableLiveData = MutableLiveData() ...
Android:使用依赖项 ViewModelProviderFactory 初始化 ViewModel 的正确方法
我有两个 ViewModel,它们依赖于其他对象,而这些对象又可能依赖于上下文 (SettingsDataStore)。现在为了让上下文远离我的 ViewModels,我正在关注
Android Hilt 将“辅助”参数传递给 ViewModel 构造函数
至于 2023,除了这种方式之外,还有更好或更少的样板方法将辅助参数注入 ViewModel 吗? 类 PlantDetailViewModel @AssistedInject 构造函数( plantRepos...
将 android 中的数据库持久状态和仅 UI 状态与 kotlin 相结合的好方法是什么?
我正在使用 Jetpack compose 和 Room 作为数据库解决方案为 android 编写一个 Todo 应用程序。 对于每个待办事项/任务,我都有一些数据需要保存在数据库中(例如文本、截止日期……)和……