android-livedata相关内容

ListAdapter diff不在同一列表实例上调度更新,但也不在与LiveData不同的列表上调度更新

如果新列表只具有已修改的项,但具有相同的实例,则ListAdapter(实际上是其实现中的AsyncListDiffer)不会更新列表,这是一个已知问题。如果您在内部使用相同的对象,则更新也不适用于新实例列表。 要使所有这些都起作用,您必须创建整个列表和内部对象的硬拷贝。 实现这一目标的最简单方法: items.toMutableList().map { it.copy() } 但 ..

LiveData vs StateFlow:我们应该从实时数据切换到状态流吗?

我见过推荐切换到StateFlow的文章。 就像here。 同样在新的Android工作室中,StateFlow支持自动包含在数据绑定的功能中,包括协程依赖。 大多数应用程序已经在使用实时数据。 我们是否应该从LiveData迁移到StateFlow?有什么好处? 推荐答案 状态流和实时数据没有太大区别。主要区别在于State flow需要初始值,因此不需要检查是否为空。第二个不同之处 ..

我们可以在不损失任何价值的情况下使用LiveData吗?

我希望使用LiveData来处理定制视图及其包装片段之间的通知类型,因为它已经具有生命周期感知功能。但似乎LiveData可能会丢失值:它只会更新到其最新状态,也不会在其观察器处于非活动状态期间激发值。 我已经查看了Google代码示例中的SingleLiveEvent purpose,但该解决方案似乎尚未经过战斗测试,而且ticket最近仍在尝试改进该解决方案。 所以我正在寻找一种简 ..
发布时间:2022-08-20 13:43:58 移动开发

Android Room@多对多关系?

我正在开发一个Android应用程序,正在使用Android操作系统中的新架构组件:LiveData、ViewModel和Room。 我对Room实现有一个小问题,那就是创建一个@Relationship,它返回连接查询(多对多关系)的结果。 我的数据库结构如下: @Entity public class Student{ @PrimaryKey private int id; ..
发布时间:2022-08-20 13:33:01 移动开发

如何在片段中使用ViewModel?

我使用的是MVVM架构。我有一个活动和几个片段,我想在活动中的API中发出一个请求,然后使用ViewModel,感谢获得的数据,将它们显示在片段中。我该怎么做呢?我当前的解决方案不起作用: 活动: viewModelRoutesFragment = new ViewModelProvider(this).get(ViewModelRoutesFragment.class); viewM ..
发布时间:2022-08-20 13:25:32 Java开发

使用来自MutableStateFlow<;List<;MyDataObject>;>;()的数据对象字段值的Android更新活动

当我更改用于显示下载进度条的对象中的某个字段的值时,从viewModel()可靠地更新我的Activity/UI层时遇到了问题。该活动可以很好地观察到向列表添加对象和从列表中删除对象,但不会更改进度字段。 数据类 data class DownloadObject( val id: String?, var progress: Float, ) 视图模型 clas ..

在Jetpack@Compose函数中使用LiveData作为状态

我希望在@Composable函数中使用LiveData>作为我的状态源。 我不能使用新的@Model批注,我在这次演讲中看到Link(at 32:06)可以通过调用函数+observe(/* Data */)来使用LiveData、Flow等。 针对问题: 我找不到视频(+Obview())中使用的函数,也找不到使用LiveData作为来源的其他方式。 ..

流不使用绑定适配器

对于特定的回收器视图项目,如果我选择Checkbox(勾选它),则需要将其对应的TextView文本格式化为删除线。 我正在使用绑定适配器、流和实时数据。 但选中该复选框后,其对应的TextView未格式化。 但是,如果我导航到其他片段并返回到此处(FruitFragmnet),则TextView数据是格式化的。(即数据库在勾选复选框中正确更新,但实时数据发送延迟到UI) 可能的根 ..
发布时间:2022-02-20 23:09:55 移动开发

带有视图模型和实时数据的 ViewPager,所有 6 个选项卡数据都替换为最后一个选项卡数据

我正在开发一个带有 6 个 tabs 的 ViewPager,其中只有一个片段 TimesListFragment 根据传递给 TimesListFragment 的参数,它调用 api 例如;科学、技术、旅游等 我的应用程序遵循了 Google 的 GithubBrowserSample 我有 TimesListFragment -> TimesViewModel -> Tim ..

第一次调用后未观察到 LiveData

我实施了 LiveData &ViewModel 模仿 AsyncTaskLoader. 我从 DCIM 中的相机目录加载文件名,然后在删除文件(图片)时附加一个 fileObserver 到 Observe,然后回调告诉 LiveData 在删除事件发生时重新获取文件名 问题: 下面的代码应该在 LiveData 的帮助下从 DCIM/Pictures 中异步获取文件名,然后将 F ..
发布时间:2021-11-27 23:07:06 其他开发

Android 架构组件:ViewModel 如何观察存储库中的 LiveData

我正在研究 Android 架构组件 并且我'我有点困惑.在示例中,他们使用了一个存储库并在存储库的数据源由 ViewModel 观察.我不明白如何将数据源中的更改推送到 ViewModel,因为我在 ViewModel 中看不到任何将它们订阅到存储库的代码.类似地,片段观察 ViewModel 的 LiveData,但它们实际上订阅了 LiveData: //观察商品数据model.getOb ..