处理Spinner中冗长的数据加载

时间:2019-05-08 14:40:22

标签: android rest server spinner adapter

我在Android中有两个微调器。用户从第一个中选择,然后根据第一个中的选择填充第二个Spinner的适配器。数据必须来自REST服务器(速度不是很快),因此第二个Spinner需要很长时间才能加载。

从UI角度来看,什么是最好的方法?我可以做几件事,例如:显示Spinner所在的加载圆圈,或禁用第二个Spinner,直到加载新数据。

这些似乎不是非常理想的解决方案,我很想知道是否有更好的方法来做到这一点。

请注意,在显示页面之前为第一个微调框的所有可能选择缓存所有可能的值并不是真正的选择,因为这将需要多次调用服务器,并且每次调用需要花费几秒钟。我无法控制提供的服务器或端点。

1 个答案:

答案 0 :(得分:2)

我建议加载骨架样式。 只显示准备使用的真实控件。因此,如果第一个微调器强制执行A​​PI调用。我将以这种方式使用“可取消的协程作业”,如果他们再次选择,则可以将其取消。

然后创建第二个下拉动画的骨架闪烁,直到准备就绪。忙碌的指示器圈开始播放,人们讨厌看到它们。

但是,如果您确定要进行忙碌指示器圈,那么我会亲自在微调器控件上覆盖一个小的忙碌指示器,并使微调器控件在准备就绪之前无法聚焦。

此外,如果您实现存储库和MVVM模式,则可以在适合模型的同时获取更新的数据时退回缓存的数据。

https://uxdesign.cc/what-you-should-know-about-skeleton-screens-a820c45a571a