QML中的多页面应用

Chr*_*abe 7 qt android qml ios

我被要求为一个客户端创建一个应用程序,它可能同时在Android和iOS上(首先集中在iOS上).所以我认为Qt可能就是答案.我想使用Qt Quick创建应用程序,但我似乎找不到有效处理多个页面的方法,请记住每个页面可能相当重量级.

到目前为止,我已经尝试过:

  • 用加载器分页,即动态拉入所需的屏幕.这有效但第一次加载屏幕时会有明显的延迟
  • 使每个页面成为一个组件,只显示必要的屏幕.这会在启动时加载所有页面,因为内存太重
  • 使每个页面成为一个组件并通过ListView显示它们.与上述问题相同.

必须有一个中间立场,其中视图基本上可以像本机iOS应用程序一样进入低内存模式.欢迎任何建议.

注意:屏幕的进展不一定是线性的

Mat*_*hew 2

我对 QML 的经验相当有限,但从其他 UX 经验来看,我认为解决方案将涉及重构页面以将Loader项用于其内部子项/组件。根据我的阅读,听起来您正在每个页面本身上使用Loader项目。

例如,当您的程序开始在页面中加载时,它的内存占用应该很小,否则仍然有许多大型组件需要动态加载。

当用户提供进入特定页面的输入时,按照通常的方式进行动画/显示,不应延迟。然后,页面本身应该为每个需要加载的组件(即具有较大内存占用的组件)使用Loader项。

加载组件时,您可以显示进度条/滚轮动画。一旦组件通过onLoaded 信号完成加载,您就可以隐藏进度条/滚轮。

您可能还想查看Loader项的异步属性,以确保组件加载时的任何动画(即进度条/滚轮)避免出现故障。

最后,当页面需要隐藏时,只需将每个Loader项的active 属性设置为 false,它就会释放加载的组件。

希望这对您有所帮助,并且不会重复您已经尝试过的事情。