列表视图不起作用 - 不导航到不同的页面

时间:2014-02-02 16:15:35

标签: xml qml blackberry-10 blackberry-cascades

我有一个包含5个项目的列表视图,我希望每个项目在点击时导航到不同的页面。我想要发生的只是导航到一个不同的页面,不传递任何数据(正如许多教程所说),所以如何实现这一点。例子也非常受欢迎。

由于

QML

import bb.cascades 1.2

NavigationPane {
    Page {
        titleBar: TitleBar {
            title: "Hello World"

        }
        Container {
            //Todo: fill me with QML
            ListView {
                dataModel: XmlDataModel {source: "list.xml"}
                listItemComponents: [
                    ListItemComponent {
                        type: "item"
                        StandardListItem {
                            title: ListItemData.title
                            description: ListItemData.text
                        }
                    }
                ]

            }
        }
    }
}

XML

<root>
    <item title="Item 1"    file="item1.qml"/>
    <item title="Item 2"    file="item2.qml"/>
    <item title="Item 3"    file="item3.qml"/>
    <item title="Item 4"    file="item4.qml"/>   
    <item title="Item 5"    file="item5.qml"/> 
</root>

1 个答案:

答案 0 :(得分:0)

首先,您需要捕获该点击,因此请使用

onTriggered: {
    //use this to get data from your click
    var myData = dataModel.data(indexPath);         
}

现在myData会存储titlefile。但你不能(至少不是我所知道的)打开QML而不先定义它。所以使用这个:

 attachedObjects: [
    ComponentDefinition {
         id: mitem1
         source: item1.qml
    },
    ComponentDefinition {
         id: mitem2
         source: item2.qml
    } //etc
 ]

然后调用类似这样的东西(你可以从myData.file获取文件名,以便从onTriggered中使用它来调用正确的ID)

navigationPane.push(mitem1.createObject());

哦,您需要为NavigationPane(id:navigationPane

设置ID