【问题标题】:Show preloader before activity loaded [duplicate]在加载活动之前显示预加载器[重复]
【发布时间】:2017-10-08 15:48:54
【问题描述】:

我的用户界面很繁重,可能会延迟应用程序加载。我想在加载活动的 UI 之前显示一个预加载器。请注意,我的 ui 在 xml 文件中

【问题讨论】:

  • 我在我的应用中使用 viewpager 和一些片段。
  • Activity B 中有 ViewPager 和许多“重”片段,并且希望在从 Activity A 显示 B 时显示 ProgressBar?
  • 是的。十个碎片
  • 不,我想在一个活动中触发所有事情
  • 您是否尝试过制作进度对话框?

标签: android performance android-layout


【解决方案1】:

编辑: 如果您想在视图分页器中加载 10 个选项卡,请使用仅加载相邻选项卡的 FragmentStatePagerAdapter(默认行为)。

如果您指定的繁重 UI 只是 UI 元素,则应用程序在加载时必须冻结。因此,您最好显示一个带有加载消息的不可取消对话框(没有动画),并在片刻(如 200 毫秒)后加载您的 UI 并显式关闭对话框。

但如果繁重的东西不仅仅是 UI,也许是一些计算或图像处理,只需在后台线程中执行,同时显示一个进度对话框,并在任务完成时取消对话框。

【讨论】:

    【解决方案2】:

    @Hassan 根据我的说法,如果单击启动器图标,如果您的应用程序需要一段时间才能呈现第一个屏幕(可能在两者之间出现黑屏)。这需要在您的应用程序中更正。

    相反,如果您的应用程序主屏幕需要填充/检索某些资源以有效地吸引用户,您可以执行类似闪屏(过时)之类的操作,您可以在其中执行所有“填充/检索”,然后简单地传递数据到你沉重的用户界面。 现在关于进度条,如果获取的数据很小,您可以提供一个不确定的“自定义”(一些适合您的应用程序的移动动画)进度条,否则如果它类似于下载,您可以轻松跟踪其进度并显示在水平进度条

    【讨论】:

    • 我的ui是xml文件
    【解决方案3】:

    你当然可以!您正在描述一个预加载器。这是一个很好的例子https://github.com/rtheunissen/md-preloader
    您必须向您的问题添加更多信息才能获得具体答案,但有一些基本原则。

    如果您使用不显示加载进度的预加载器,您的生活会轻松很多,它只是循环往复,因为某些加载过程的速度无法测量。

    如果它是一个需要时间的数据加载(例如对 API 的调用),您可能希望在脚本顶部将“加载”变量设置为 true,然后在数据解析完成后,将其设置为“假”。在您看来,有一个隐藏/取消隐藏预加载器的状态或条件元素。

    如果大量图片导致页面变慢,您可能需要考虑“延迟加载”或使用“无限滚动”来仅在 UI 需要在屏幕上显示内容时才显示内容。

    这就是我可以提供的所有信息,而无需更多关于您目前拥有的代码的信息。希望有帮助!

    【讨论】:

    • 我不想以编程方式从网络加载某些东西或膨胀某些东西。
    • 我的ui是xml文件
    猜你喜欢
    • 2019-10-28
    • 2019-07-31
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多