1

到目前为止,我一直在 QML 中使用 StackView 从一个屏幕转到另一个屏幕。但我发现也可以创建不同的项目,这些项目将设置为可见或不可见,以使用新视图更新屏幕。例如,我可以有一个页眉、一个设置为可见的主要项目 (Item1) 和一个页脚。然后我可以将 Item1 设置为不可见,将 Item2 设置为可见。

我想知道每种解决方案的优点/缺点是什么?(StackView VS 视图可见/不可见)

4

1 回答 1

3

正如@ddriver 所说,使用的好处StackView是您不必自己做所有事情。我怀疑不使用 StackView(如果你有的话)所获得的性能优势将超过代码可读性的下降。如果我必须维护您的代码并看到您是自己做的,那么我要问的第一个问题是为什么您不只使用StackView.

  • 过渡:您必须维护每个页面的动画,您可以免费获得StackView- 例如,它们默认存在,您无需编写一行代码即可获得漂亮的动画。
  • 可见性:您可能必须为每个页面创建一个索引,并将其与文件中的currentIndex属性进行比较main.qml。给每个“页面”一个索引并visible: index == currentIndex为每个项目设置。您必须确保在动画之后发生这种情况(如果有的话)。
  • 内存: 的典型用例StackView是 pushComponent从中实例化和管理项目的 s StackView。如果您有很多复杂的页面,如果您在它们不可见时不销毁它们,这可能会影响性能。

例如,我可以有一个页眉、一个设置为可见的主要项目 (Item1) 和一个页脚。

Page并且ApplicationWindow也有这个功能。

如果您将其作为学习练习,请务必使用自定义实现。

如果您的目标是获得可靠(StackView经过自动测试并向公众公开)的成品,请使用StackView.

于 2016-09-01T13:37:37.233 回答