![](/img/trans.png)
[英]How do I dynamically add and delete fragments with viewpager2 and fragmentstateadapter?
[英]How do I update new data in ViewPager2 fragments?
我有一个片段,其中包含:
我想要实现的是当用户单击自定义视图时,它将更新 RecyclerView 中的数据。
在我的例子中,当用户取消选择自定义视图中的项目时,它也会取消选择 RecyclerView 项目中的内容。
我不确定如何使用返回到 RecyclerView 的适配器级别的侦听器来执行此操作。 有人对如何实现这一目标有任何想法吗?
您可以为此使用 BroadcastReceiver。 如果您想触发,当您广播时,相关代码将在您要捕获广播的Fragment上触发。
您还可以使用 EventBus 库。 这两种方法都可以,但 EventBus 制造商声称它们比 BroadcastReceiver 性能更高。
您可以使用以下方式进行通信:
SharedViewModels:两个 Fragment 使用相同的 SharedViewModel,1 将更新 viewModel 中的 Observable(LiveData/Flow),另一个 Fragment 将观察该 Observable(LiveData/Flow) 的变化
Flows/LiveData:从任何 Repository 或 UseCase 层公开,类似于 SharedViewModels,但您的 Observable(LiveData/Flow) 将位于 Repository 或 UseCase 中,并且两个片段的两个 viewModel 都将注入相同的 Repository/UseCase。
RoomDB:将该数据存储在 RoomDB 中并从 Room DAO 返回 Flow/LiveData。 并在您的片段中观察此流程。 每当数据库更改时,您的片段将收到更新数据的通知。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.