2014-02-10 56 views
1

对于我的Blackberry 10应用程序,我想要做的是将选项卡窗格连接到导航窗格。然而,当用户从列表中选择一个项目时,我该怎么做?我创建了一个列表视图,其中项目源基于XML文件,但我想知道需要在ListView的onTriggered事件中更改哪些内容,因为我认为它与此有关,目前仅推送页面。将选项卡窗格添加到导航窗格 - BlackBerry 10

QML

import bb.cascades 1.2 

    Page { 
     id: waterlooandcity 
     Container { 
      ListView { 
       dataModel: XmlDataModel {source: "asset:///models/WC.xml"} 
        listItemComponents: [ 
         ListItemComponent { 
         type: "item" 
         content: Container { 
          StandardListItem { 
           title: ListItemData.title 
           description: ListItemData.zone 
          } 
         } 
        } 
       ] 
       onTriggered: { 
        var chosenItem = dataModel.data(indexPath); 
        Qt.pageTitle = chosenItem.title; 

        chosenPage.source = chosenItem.file; 
        nav.push(chosenPage.createObject()); 
       } 
      } 
     } 
    } 

XML

<root> 
    <item title="Bank" zone="Fare zone 1" file="Bank_(WC).qml"/> 
    <item title="Waterloo" zone="Fare zone 1" file="WAT_(WC).qml"/> 
</root> 

回答

1

甲的TabbedPane不能放在一个NavigationPane或一个页面内。它通常被认为是应用程序的根。

您可以做的是打开包含TabbedPane的工作表。

的东西,如:

attachedObjects: [ 
    Sheet { 
     id: tabSheet 
     property variant source 
     TabbedPane { 
      //insert tabs here 
     } 
    }   
] 

然后你就可以打开表和参数传递到它像这样:

onTriggered: { 
    var chosenItem = dataModel.data(indexPath); 
    Qt.pageTitle = chosenItem.title; 

    tabSheet.source = chosenItem.file; 
    tabSheet.open(); 
} 

我没有带测试这一点,但它应该工作。

+0

它的工作原理,但它不让我用Peek回到上一页。此外,必要的内容不会出现。 – MacaronLover

+1

你将无法达到你想要的偷看行为。这是因为选项卡式窗格不允许在下面查看(查看手势用于查看完整的选项卡列表)。这是您无法在导航窗格中放置选项卡式窗格的原因之一。 我会建议使用分段控件替换选项卡式窗格。这将允许您在导航窗格中推送您的页面。 http://developer.blackberry.com/native/documentation/cascades/ui/core_controls/segmented_control.html –

相关问题