2014-02-10 73 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 –

相關問題