Blackberry Cascades中的重复操作栏按钮

时间:2013-02-11 18:25:23

标签: button blackberry-simulator blackberry-10 blackberry-cascades

我的Blackberry Cascades应用程序遇到了一个奇怪的问题。我试图在操作栏上添加一个按钮(在应用程序的底部)。但是当我在Blackberry 10 Dev Alpha模拟器(BB10_0_10.261)中进行测试时,似乎我有2个(有时是3个)同一个按钮的版本,如下图所示。虽然通常应该只有1?

Too many buttons

所以我所做的就是在QML中为我的页面添加一个按钮,如下所示:

NavigationPane {
    Page {
        Container {
            layout: StackLayout {
            }
            ListView {
                ...
            }
        }
        actions: [
            ActionItem {
                title: "New Event"
                ActionBar.placement: ActionBarPlacement.OnBar // HERE
                onTriggered: {
                    var page = newEventPage.createObject();
                    navigationPane.push(page);
                }
                attachedObjects: ComponentDefinition {
                    id: newEventPage
                    source: "addEvent.qml"
                }
            }
        ]
    }
    onPopTransitionEnded: {
        page.destroy();
    }
}

此代码不仅仅是添加一个链接到“addEvent.qml”的“新事件”按钮

但是,如果我删除(或评论)行Actionbar.placement: ActionBarPlacement.OnBar(在上面的代码中标有HERE),我只会得到预期的1个按钮。但是这个按钮位于溢出菜单中,而我想要它在底部的ActionBar上。

所有不同版本的按钮完全相同(顺便说一下预期的行为:打开addEvent.qml)。

我已经尝试过:“清洁......”然后“重建”;这没用。我也尝试将actions-array移动到其他地方,因为我认为这可能是在错误的地方,但这也没有帮助。在模拟器上删除应用程序,然后重新安装它。

我也在不同的计算机和其他模拟器上尝试过,因为我认为它可能是我的电脑。但那里我遇到了同样的问题。

我不知道这是不是一个错误,但我想我做错了,因为我在Cascades Development上没有很多经验。我到处寻找,但没有其他人有同样的问题。我没有在真实设备上测试它,因为我还没有BB10设备。

1 个答案:

答案 0 :(得分:1)

我在Blackberry Cascades论坛上问了这个问题,因为我认为大多数专家会住在那里。并且显然,他们可以answer我的问题。

显然问题是我使用了qml->setContextProperty("model", model); 在我的C ++代码中。而且我认为这并没有产生太大的影响,所以我把这一行放在了AbstractPane *root = qml->createRootObject<AbstractPane>();行之后 但显然它确实有所作为,因为那样你就会收到双倍的按钮。

所以这个问题实际上很容易解决,只需在setContextProperty行之前移动createRootObject行,一切都解决了。

我使用3个按钮时遇到的问题似乎是我在setContextProperty行后面有2 createRootObject行代码。因此,对于每个setContextProperty行,按钮都是重复的。