在显示之前准备其视图的片段

时间:2018-06-11 16:04:18

标签: android android-fragments

我在片段活动中有两个片段(让我们称之为A和B)。片段A只是一个占位符 - 一个“加载”的动画,并且工作正常。片段B根据网站的一些解析绘制图表。也就是说,它包含一个广播接收器,用于处理来自解析/加载服务的回调。现在我有片段A的原因是隐藏条形图的绘制方式 - 当它们到达时,从广播接收器的onReceive()方法中一次一个地绘制条形图(看起来不太令人愉快)。我从片段B的onCreate()方法内部启动解析/数据加载服务。尽管如此,即使在片段A之后延迟5秒后显示片段B,条形图仍在构建中。我想要实现的是,当我调用replace()方法将片段A替换为片段B时,B片段必须显示的内容必须是相机准备好的。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的描述,您将显示A,然后在5秒后将其替换为B.这意味着B将在5秒延迟后创建,并且该服务将仅在该时刻开始。

您可能需要的是:显示片段B,然后使用add()在其上添加片段A.然后在延迟之后,或者在最终广播到来时(IDK可行),你删除片段A,它将显示你的片段B.

说到这里,严格来说,Android不会保证你的片段B总是存在于A下面。它可能永远不会发生,但Android保留在A消失后销毁它并重新创建的权利。如果你想彻底避免这种情况,我会考虑在服务中缓存中间响应,并且只有当片段可用于构建图表时才发出广播。