处理旋转器中的数据冗长加载



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

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

这些似乎不是最佳解决方案,我很想知道是否有更好的方法。

请注意,在显示页面之前,为第一个旋转器的所有可能选择的所有可能的值加速并不是一个选项,因为这需要对服务器进行多个调用,并且每个呼叫需要几秒钟。我无法控制服务器或提供的端点。

我建议骨骼样式加载。仅显示准备使用的真实控件。因此,如果第一个旋转器强迫API呼叫。我将使用"可取消的Coroutine作业",如果他们再次选择,它可以被取消。

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

但是,如果您确定要执行忙碌的指示器圆圈,那么我个人会叠加一个小繁忙的指示器,并使Spinner控件在准备就绪之前不可集中注意力。

另外,如果您实现存储库和MVVM模式,则可以在获取更新的数据时递回缓存的数据。

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

您实际上无能为力。如果其余通话需要时间,那么,这需要时间,而您无需做任何事情,除了获得更好的互联网连接之外。

我想到的唯一一件事是在应用程序加载时在第二个旋转器中选择可能的选择,然后将其本地存储在数据库中。这样,也许仅在第一次使用时加载应用程序就需要时间,但是下一个执行将更快,因为您不需要重新下载数据。

或简单地显示一个加载圆。如果其余服务器慢,那不是您的错...

最新更新