android-livedata相关内容
如果新列表只具有已修改的项,但具有相同的实例,则ListAdapter(实际上是其实现中的AsyncListDiffer)不会更新列表,这是一个已知问题。如果您在内部使用相同的对象,则更新也不适用于新实例列表。 要使所有这些都起作用,您必须创建整个列表和内部对象的硬拷贝。 实现这一目标的最简单方法: items.toMutableList().map { it.copy() } 但
..
我见过推荐切换到StateFlow的文章。 就像here。 同样在新的Android工作室中,StateFlow支持自动包含在数据绑定的功能中,包括协程依赖。 大多数应用程序已经在使用实时数据。 我们是否应该从LiveData迁移到StateFlow?有什么好处? 推荐答案 状态流和实时数据没有太大区别。主要区别在于State flow需要初始值,因此不需要检查是否为空。第二个不同之处
..
我希望使用LiveData来处理定制视图及其包装片段之间的通知类型,因为它已经具有生命周期感知功能。但似乎LiveData可能会丢失值:它只会更新到其最新状态,也不会在其观察器处于非活动状态期间激发值。 我已经查看了Google代码示例中的SingleLiveEvent purpose,但该解决方案似乎尚未经过战斗测试,而且ticket最近仍在尝试改进该解决方案。 所以我正在寻找一种简
..
我正在开发一个Android应用程序,正在使用Android操作系统中的新架构组件:LiveData、ViewModel和Room。 我对Room实现有一个小问题,那就是创建一个@Relationship,它返回连接查询(多对多关系)的结果。 我的数据库结构如下: @Entity public class Student{ @PrimaryKey private int id;
..
我使用的是MVVM架构。我有一个活动和几个片段,我想在活动中的API中发出一个请求,然后使用ViewModel,感谢获得的数据,将它们显示在片段中。我该怎么做呢?我当前的解决方案不起作用: 活动: viewModelRoutesFragment = new ViewModelProvider(this).get(ViewModelRoutesFragment.class); viewM
..
我使用Flow而不是LiveData来收集片段中的数据。在片段A中,我观察(或者更确切地说是收集)片段的onView中的数据如下所示: lifecycleScope.launchWhenStarted { availableLanguagesFlow.collect { languagesAdapter.setItems(it.allI
..
何时使用MutableLiveData和LiveData表示使用方法的区域: MutableLiveData getUser() { if (userMutableLiveData == null) { userMutableLiveData = new MutableLiveData(); } return userMutableLi
..
我有一个存储库类,其异步方法返回User包装成LiveData: interface Repository { fun getUser(): LiveData } 在ViewModel的Coruotine作用域中,我希望等待getUser()方法的结果并使用User实例。 这就是我要找的: private fun process() = viewModel
..
当我更改用于显示下载进度条的对象中的某个字段的值时,从viewModel()可靠地更新我的Activity/UI层时遇到了问题。该活动可以很好地观察到向列表添加对象和从列表中删除对象,但不会更改进度字段。 数据类 data class DownloadObject( val id: String?, var progress: Float, ) 视图模型 clas
..
我希望在@Composable函数中使用LiveData>作为我的状态源。 我不能使用新的@Model批注,我在这次演讲中看到Link(at 32:06)可以通过调用函数+observe(/* Data */)来使用LiveData、Flow等。 针对问题: 我找不到视频(+Obview())中使用的函数,也找不到使用LiveData作为来源的其他方式。
..
在我的片段中,我有两个微调工具。 两者都由在ViewModel中观察到的LiveData填充,如下所示: 数据-lang=“js”数据-隐藏=“假”数据-控制台=“真”数据-巴贝尔=“假”> // Observe Filtered ProductGroups and populate Spinner businessViewModel.filteredAp
..
我有以下方案。我有一个活动,里面有一个片段。在这段代码中,我显示了来自后端数据库的一些记录。我还使用了如下所示的适配器: public class MovieAdapter extends PagedListAdapter { private Context context; public Movie
..
对于特定的回收器视图项目,如果我选择Checkbox(勾选它),则需要将其对应的TextView文本格式化为删除线。 我正在使用绑定适配器、流和实时数据。 但选中该复选框后,其对应的TextView未格式化。 但是,如果我导航到其他片段并返回到此处(FruitFragmnet),则TextView数据是格式化的。(即数据库在勾选复选框中正确更新,但实时数据发送延迟到UI) 可能的根
..
我正在开发一个带有 6 个 tabs 的 ViewPager,其中只有一个片段 TimesListFragment 根据传递给 TimesListFragment 的参数,它调用 api 例如;科学、技术、旅游等 我的应用程序遵循了 Google 的 GithubBrowserSample 我有 TimesListFragment -> TimesViewModel -> Tim
..
在我的活动中,我有一个观察者观察这个查询 @Query("""Select *,(从 account_id = from_account_id 的帐户中选择 account_id)作为 contact_account_id,(从 account_id = from_account_id 的帐户中选择 first_name)作为 contact_first_name,(从 account_id =
..
我正在尝试使用实时数据为视图模型编写单元测试. 登录ViewModel.kt class LoginViewModel @Inject 构造函数(val 上下文:上下文):视图模型(){val 用户名 = MutableLiveData()val 密码 = MutableLiveData()val isLoginButtonEnabled = MediatorLiveData().appl
..
我正在使用 LiveData 从服务器获取数据并观察它.我的 onChanged() 方法只是第一次被调用,当服务器中的数据更新时不会被调用. 用户片段: UserViewModel userViewModel = ViewModelProviders.of(this).get(UserViewModel.class);userViewModel.getUser().observe(thi
..
我有一项服务,它提供的用户界面大部分时间都对用户可见. 当我遇到问题时,我正在试验新的应用程序架构. MyModelviewModel viewModel = ViewModelProviders.of(this).get(MyModelviewModel.class); 但如你所知 this 只能是 AppCompat 或 Fragment 有其他选择吗?或者我可以将观察
..
我实施了 LiveData &ViewModel 模仿 AsyncTaskLoader. 我从 DCIM 中的相机目录加载文件名,然后在删除文件(图片)时附加一个 fileObserver 到 Observe,然后回调告诉 LiveData 在删除事件发生时重新获取文件名 问题: 下面的代码应该在 LiveData 的帮助下从 DCIM/Pictures 中异步获取文件名,然后将 F
..
我正在研究 Android 架构组件 并且我'我有点困惑.在示例中,他们使用了一个存储库并在存储库的数据源由 ViewModel 观察.我不明白如何将数据源中的更改推送到 ViewModel,因为我在 ViewModel 中看不到任何将它们订阅到存储库的代码.类似地,片段观察 ViewModel 的 LiveData,但它们实际上订阅了 LiveData: //观察商品数据model.getOb
..