0

我有一个视图寻呼机,它是一个片段。在这里面,我有三个片段,每个片段显示一个项目列表,这些项目具有相同的模型,但由一个状态(我的模型中的属性)过滤,例如我有一个用于我所有对话的列表的whatsapp,另一个用于我的对话没读过,最后我读过其他的。

问题是当我在第一个片段(我所有的对话)中时,我必须刷新所有数据。所以,我试图在容器片段(查看寻呼机)中获取我的所有数据,但我看不到我的第一个数据列表(我所有的对话),因为在创建容器视图时,也会创建第一个和第二个片段。

如何获取容器中的数据(查看寻呼机)并立即在每个子片段中显示相应的列表?

4

1 回答 1

0

解决方案是不要将数据存储在任何Fragment.

这是一个非常常见的用例,如果Fragment(或Activity)X 中需要数据,那么 Y 中也需要它。在Fragment它们之间共享任何状态Fragments都不容易且容易出错,因此我总是建议将应用程序的数据保存在“应用程序”中全球范围”。

你需要的是一些对象,我们称之为它DataRepository,它存在于Applicationobject 的范围内并被注入到 allFragments中。由于它存在于Application范围内,因此数据不依赖于任何特定的数据,Fragment并且所有人都Fragments可以访问和过滤数据,但您认为合适。

定义这种“全局”对象最方便的方法是使用依赖注入框架(例如 Dagger)并DataRepositoryApplicationComponent.

于 2017-10-23T16:59:19.093 回答