2013-02-20 64 views
1

點擊列表視圖按鈕時,我需要推送一個頁面。我嘗試了下面的代碼,但它不工作。如何導航到列表視圖中的另一個頁面按鈕點擊事件bb 10個級聯?

ListItemComponent { 
    type: "imageItem" 
    Container { 
     id: publicimageItem 
     ...... 

     ...... 

     ImageButton { 
      defaultImageSource: "asset:///defaultimg.png" 
      pressedImageSource: "asset:///pressedimg.png" 

      onClicked: { 
       var new_page = publicimageItem.ListItem.view.nextpage.createObject(); 
       publicimageItem.ListItem.view.navigationPane.push(new_page); 
      } 
      attachedObjects: [ 
       ComponentDefinition { 
        id: nextpage 
        source: "NextPage.qml" 
       } 
      ] 
     }// ImageButton 
    }// Container 
}// ListView 

當我嘗試在列表視圖之外它將進入nextpage沒有任何問題。

+0

首先,將代碼從這裏(http://developer.blackberry.com/cascades/download/releasenotes/#limitations)添加到main.cpp中,以便在控制檯中獲得輸出。當你想添加調試語句和顯示錯誤時,這非常有用。 – barry 2013-02-20 18:36:25

+0

它也有助於測試/調試以在try..catch中包裝JavaScript代碼塊並將錯誤輸出到控制檯(如果您已實施上述Barry的建議)。通常,諸如「找不到對象」之類的錯誤不會輸出錯誤,而只是悄無聲息地失敗。 – hyarion 2013-02-21 10:02:18

+0

你有沒有找到解決方案? – 2013-09-20 09:48:25

回答

0

提示該路徑NextPage.qml和頁面本身是有效的,並設置正確,我建議在onClicked()更改代碼爲以下:

var new_page = nextpage.createObject(); 
navigationPane.push(new_page); 

請確保navigationPane這裏訪問。啓用前面提到的barry控制檯日誌記錄(或使用終端slog2info實用程序)可能是一個好主意。這樣你就可以看到你的代碼和原因發生了什麼。

作爲另一種變體,如果你想與整個列表項(不與它特定的部件)的交互導航到其他頁面,您需要將相同的代碼在onTriggered()插槽:

ListView { 
    ListItemComponent { 
     type: "imageItem" 
     Container { 
      id: publicimageItem 
      ...... 
     }// Container 
    }// ListItemComponent 

    onTriggered: { 
     var new_page = nextpage.createObject(); 
     navigationPane.push(new_page); 
    } 

    attachedObjects: [ 
     ComponentDefinition { 
      id: nextpage 
      source: "NextPage.qml" 
     } 
    ]  
} // ListView  
+0

嗨,有沒有什麼辦法做單按鈕點擊,如果我使用onTrigger整個列表是單擊,而不是需要單擊一個按鈕單擊事件 - 謝謝 – Vendetta 2013-02-25 07:45:52

+0

你是什麼意思'整個列表點擊'?根據[文檔](http://developer.blackberry.com/cascades/reference/bb__cascades__listview.html#function-triggered-indexpath),當用戶觸發列表項時會發出此信號。如果你想處理一個列表項中的一個小部件的特定信號,你需要綁定到該小部件的適當信號,例如'onClicked()',如果是'Button'等 – Sunseeker 2013-02-26 00:16:36

+0

我有這個問題:ReferenceError:Can' t查找變量:navigationPane – 2013-09-20 09:47:19

1

使用下面的代碼將對象存儲到全局變量的另一種最簡單的方法,該代碼適用於我。

 onCreationCompleted: { 
    Qt.tabbedPane = tabbedPane; 
    Qt.homeTab = homeTab; 
    } 

在這裏,我保存選項卡窗格中的全局變量Qt.tabbedPane在頁面創建Completed.Now我能夠使用Qt.tabbedPane從ListItemComponent訪問它。

在你的情況下,存儲導航窗格爲Qt.navigationPane = NavigationId,然後嘗試從ListItemComponent作爲Qt.navigationPane訪問它。

希望它會有所幫助。

希望它有幫助。

相關問題