【问题标题】:Fragment preparing its view before being shown在显示之前准备视图的片段
【发布时间】:2018-06-12 01:36:02
【问题描述】:

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

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    如果我正确理解您的描述,您将显示 A,然后在 5 秒后将其替换为 B。这意味着B将在延迟5秒后创建,并且服务只会在那个时刻启动。

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

    话虽如此,严格来说,Android 不会保证您的 Fragment B 始终存在于 A 下面。这可能永远不会发生,但 Android 保留销毁它并在 A 消失后重新创建的权利。如果您想彻底避免这种情况,我会考虑在服务中缓存中间响应,并且仅在所有数据都可用于片段构建图表时发出广播。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 2012-10-22
      相关资源
      最近更新 更多