1

我是黑莓 10 开发新手。所以我想知道最好的方法是什么,因为我没有从开发文档中得到任何明确的答案。

我想要的是从导航屏幕在我的应用程序中启动一个单独的视图。然后,新页面将创建一个 http 请求并根据输出更新 UI。

最好的方法似乎是使用 NavigationPane 并添加一个 qml 视图。但是,当 C++ 函数被推入堆栈时,如何调用它呢?类似于 Fragments 中的 android onActivityCreated() 的东西。有 Http 示例文档,但是程序从继承的 QObject 的构造函数开始了 http 请求。如何在将新 qml 添加到导航堆栈时执行一个函数

 // navigationpane.qml

NavigationPane {
    id: navigationPane
    Page {
        Container {
            Label { 
                text: "First page"
            }
        }

        actions: [
            ActionItem {
                title: "Next page"
                ActionBar.placement: ActionBarPlacement.OnBar
                onTriggered: {
                    var page = pageDefinition.createObject();
                    navigationPane.push(page);
                }

                attachedObjects: ComponentDefinition {
                    id: pageDefinition;
                    source: "secondpage.qml"
                }
            }
        ]
    }
    onPopTransitionEnded: { page.destroy(); }
}
4

2 回答 2

3

我认为 onCreationCompleted 函数可能是您正在寻找的。

在您的 secondpage.qml 文件的 Page 对象中,添加以下内容:

Page {
        id: secondpage

        onCreationCompleted: {
            // use Javascript to call the exposed C++ function
        }
    }
于 2013-02-11T01:43:11.813 回答
0

如果你想要更多的“onActivityCreated()”精神,你可以使用信号transitionEnded:

    NavigationPane { 
         onPushTransitionEnded{
             top.callYourPageFunction();
        }
    }
于 2013-02-11T19:47:50.387 回答