我有3个片段A,B&下进行。
A包含一个项目网格,B片段有一个表单来添加数据。所有数据都移入/移出服务器。
C片段是偏好片段。
当活动开始时调用片段的onCreateView方法,我从服务器获取最新数据并膨胀到我的网格中。
当我滑动到B片段并添加一些新数据时。我刷回A片段网格后不会更新。我试图在片段A的onResume方法中调用我的更新方法。但没有帮助。
但是当我滑动到C片段并向后滑动到B片段时,列表会更新。
答案 0 :(得分:2)
ViewPager
中的片段已缓存。
使用较新API的正确方式为LocalBroadcastManager
或GreenDroid,Otto或任何其他事件总线库。
现在,除非您的片段数== getOffscreenPageLimit()
,否则会出现问题,因为您必须在onPause()
取消注册广播接收器/事件,但这样做会使您的片段无法响应广播。在Otto和GreenDroid中,有一些粘性事件会触发并“粘住”,以便稍后当你的片段恢复时,它可以查找粘性事件,消耗(否则它们会留在那里)它们,以及相应地更新它的内容。
使用Eventbus库还有很多优点:
答案 1 :(得分:0)
根据文档,片段之间的通信是通过接口完成的。
查看this答案或documentation。
中的示例