【问题标题】:BlackBerry 10 Cascades app stuck affecting propertyBlackBerry 10 Cascades 应用程序卡住影响财产
【发布时间】:2013-04-15 18:20:25
【问题描述】:

我对列表/详细信息模式有疑问。我有一个 Article 类,继承自 QObject,定义了一些属性(titleupdatedcontent 是目前最重要的属性)。为了填充我的 (QML) ListView,我有一个 C++ GroupDataModel,填充了一些 Article*。这是我的名单onTriggered

onTriggered: {
    if (indexPath.length > 1) {
        currentArticle = dataModel.data(indexPath);
        var page = articlePageDefinition.createObject();
        nav.push(page)
    }
}

您可以猜到,articlePageDefinition 使用上面的currentArticle 属性定义了一个页面。

现在,当我显示 articlePage 一次时,它工作正常。我可以返回,单击相同的列表项,显示相同的Article 详细信息,效果很好。但是当我选择第二篇文章时,该应用程序就冻结了。我可以返回导航窗格,但不能再单击列表项。我尝试添加一些日志,onTriggered 卡在currentArticle = dataModel.data(indexPath); 上。此时,我可以毫无问题地记录dataModel.data(indexPath) 的每个属性。我试图不创建/推送页面,只是影响currentArticle 并显示它的一些属性,它也可以正常工作。我真的不明白我在这里做错了什么,感谢任何帮助。

如果您需要查看更多代码,一切都在这里:https://github.com/Kernald/tt-rss-bb10/tree/e29e3b616aa179dd42f66804ecc20a6a45b6bb22

【问题讨论】:

  • 我不知道是什么导致了您的问题,但可以肯定的是,我建议您不要将 JavaScript 全局变量用于“currentArticle”。更喜欢使用属性或函数来设置数据
  • 我今天早上尝试用article 属性替换详细信息页面中的currentArticle 属性,它工作正常。你是对的,这是做这件事的好方法,我会保持这种方式。但是我还是很好奇原来问题的原因。

标签: qml blackberry-10 blackberry-cascades


【解决方案1】:

这可能会导致您遇到的问题:

  1. 您创建 articlePage 并将其数据绑定到“currentArticle”全局变量
  2. 返回时文章页面不会被删除。
  3. 您打开了同一文章页面的另一个实例。最后一个仍然将其数据绑定到同一个 currentArticle 实例。
  4. 当您返回并单击另一个项目时:上一篇文章页面仍然存在于内存中。它绑定到“currentArticle”。问题是,改变的不是“currentArticle”的数据,而是“currentArticle”引用的对象。 Qml binder 就会失败。

【讨论】:

  • 这似乎合乎逻辑。有没有办法解除绑定属性或强制删除页面?
  • 只需在您的 navigationPane 上写:onPopTr​​ansitionEnded: { page.destroy(); }
  • 页面现在被有效地破坏了,但它并没有解决最初的问题。更奇怪的是,我在最初的帖子中忘记提到了,一旦应用程序“崩溃但不是真的”,除非我重新启动手机,否则我无法停止它(图标保持灰色)。
【解决方案2】:

我的应用程序有类似的行为,但如果原因相同,我没有检查您的 github 代码。我认为您可以比我更快地验证这一点。
删除和添加具有相同索引的列表项时,代码会卡住。我删除了有关用户操作的条目并在该位置添加了一个新条目,但它卡住了。这是 BB10 的一个已知问题,我在这里找到:https://developer.blackberry.com/cascades/download/releasenotes/#known

【讨论】:

  • 不,我不删除列表中的项目。我在初始化列表时添加它们,然后它只是一个列表/详细信息模式,其中列表是只读的。不过,你的渔获将在几天内有用,谢谢...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多