2013-09-24 3 views
0

Я читал здесь статью, что http://bbcascadescode.tumblr.com/post/51115772119/swap-function-in-containers, мы можем обменять компоненты контейнера. Я пошел той же процедурой и работает для меня. Когда я применял ту же процедуру для списка Costume Listview, я получаю «ReferenceError: Не удается найти переменную: tadawulList» на консоли.Swaping Listview позиции в BB 10 Cascades

Container { 
        id:trade 
        layout: StackLayout { 
         orientation: LayoutOrientation.LeftToRight 
        } 
        topMargin: 10 

        ListView { 
         id: tradeList 
         objectName: "tradeList" 
         dataModel: _app.dataModel 
         visible: true; 

         listItemComponents: [ 
          ListItemComponent { 
           type: "header" 
           Header { 
            title: { 
             ListItemData 
            } 
           } 
          }, 

          // The tradeList Item 
          ListItemComponent { 
           type: "item" 


           Container { 
            id:tadawulList 
            leftPadding: 15.0 
            rightPadding: 15.0 

            background: Color.create("#1a1a1a") 
            preferredHeight: 80.0 
            topMargin: 6 
            layout: StackLayout { 
             orientation: LayoutOrientation.LeftToRight 
            } 

            Label { 
             id: symbol 
             text: ListItemData.Symbol_En 
             //text: ListItemData.Symbol_En.length()>20?Symbol_En.subString(0,15): Symbol_En 

             // Text Style and size etc 
             textStyle.base: SystemDefaults.TextStyles.SubtitleText 
             textStyle.fontSizeValue: 5.0 
             layoutProperties: StackLayoutProperties { 
              spaceQuota: 3.0 
             } 
             verticalAlignment: VerticalAlignment.Center 
             horizontalAlignment: HorizontalAlignment.Center 
             textStyle.color: Color.White 
             textStyle.fontWeight: FontWeight.Bold 
             textStyle.fontSize: FontSize.PointValue 
             // multiline: true 

            } 

            Container { 
             id: tadawulchange1 
             layout: StackLayout { 

             } 

             layoutProperties: StackLayoutProperties { 
              spaceQuota: 2.0 

             } 

             // ListItemData.PerChange.length == 1 ? Color.create("#1a1a1a") :Color.DarkRed 

             // background: ListItemData.PerChange.indexOf('-') < 0 ?((ListItemData.PerChange.length() == 1) ? Color.create("#1a1a1a") : Color.create("#ff105900")) : ((ListItemData.PerChange.length() == 1) ? Color.create("#1a1a1a") : Color.DarkRed) 

             background: (ListItemData.PerChange.indexOf('-') < 0)?((ListItemData.PerChange.indexOf('0.00') <0 ? Color.create("#ff105900"): Color.create("#1a1a1a"))): ((ListItemData.PerChange.indexOf('0.00') < 0 ? Color.DarkRed: Color.create("#1a1a1a"))) 

             verticalAlignment: VerticalAlignment.Center 
             preferredHeight: 20.0 
             Label { 

              id: change 
              text: ListItemData.PerChange 
              // textStyle.color: ListItemData.PerChange.indexOf('-') < 0 ? Color.Green : Color.Red //here 
              textStyle.base: SystemDefaults.TextStyles.SubtitleText 
              textStyle.fontSizeValue: 30.0 
              layoutProperties: StackLayoutProperties { 
               spaceQuota: 2 
              } 
              verticalAlignment: VerticalAlignment.Center 
              horizontalAlignment: HorizontalAlignment.Center 
              preferredHeight: 0.0 

             } 

            } 

            Label { 
             id: ltp 
             text: ListItemData.LTP 
             textStyle.base: SystemDefaults.TextStyles.SubtitleText 
             textStyle.fontSizeValue: 30.0 
             layoutProperties: StackLayoutProperties { 
              spaceQuota: 1 
             } 
             verticalAlignment: VerticalAlignment.Center 
             horizontalAlignment: HorizontalAlignment.Center 
             textStyle.color: Color.White 
             textStyle.fontWeight: FontWeight.Default 
            } 
            Label { 
             id: highValue 
             text: ListItemData.High 
             textStyle.base: SystemDefaults.TextStyles.SubtitleText 
             textStyle.fontSizeValue: 30.0 
             layoutProperties: StackLayoutProperties { 
              spaceQuota: 1 
             } 
             verticalAlignment: VerticalAlignment.Center 
             horizontalAlignment: HorizontalAlignment.Center 
             textStyle.color: Color.White 
             textStyle.fontWeight: FontWeight.Default 
            } 
            Label { 
             id: lowValue 
             text: ListItemData.Low 
             textStyle.base: SystemDefaults.TextStyles.SubtitleText 
             textStyle.fontSizeValue: 30.0 
             layoutProperties: StackLayoutProperties { 
              spaceQuota: 1 
             } 
             verticalAlignment: VerticalAlignment.Center 
             horizontalAlignment: HorizontalAlignment.Center 
             textStyle.color: Color.White 
             textStyle.fontWeight: FontWeight.Default 
            } 
           } 
          } 
         ] 
         onTriggered: { 
          var selectedItem = dataModel.data(indexPath); 
          lightTimer.stop(); 
          _app.dropSymbols(1); // Drop Req for Tadawul 

          _app.loadQuickWatch(selectedItem.symbol_ID); 

         } 
         onVisibleChanged: { 
          myIndicator.stop(); 
          loader.visible = false 
          loadText.visible=false 
         } 
        } 
        } 

и MyButton Нажмите выглядит следующим образом:

     Button { 
         horizontalAlignment: HorizontalAlignment.Right 

         imageSource: "asset:///images/search_icon.png" 
         preferredWidth: 10.0 
         preferredHeight: 10.0 
         layoutProperties: StackLayoutProperties { 
          spaceQuota: 1.0 
         } 
         onClicked: {       
          tadawulList.swap(0, 4); 
          tadawulList.swap(1, 3); 
         } 
        } 

Пожалуйста, Веди меня,

Спасибо !!!

+0

Где ваша кнопка? он должен быть внутри ** ListItemComponent ** .. –

+0

Он находится за пределами ListItemComponent (другой контейнер), есть ли другой способ достичь этого? Мне нужно поменять, когда кнопка (другой контейнер) Cliecked. – Sharath

+0

какая позиция Контейнера вы хотите поменять на кнопку? –

ответ

0

Невозможно с заменой функции. но вы можете изменить ориентацию макета, иначе.

Вот пример кода того, как ориентации макета изменения с условием ...

Container { 
       property bool isLeft:false 
       ListView { 
        id: tradeList 
        objectName: "tradeList" 
        dataModel: _app.dataModel 
        visible: true 
        function getCurrentDirection(){ 
         return isLeft; 
        } 
        listItemComponents: [ 
         ListItemComponent { 
          type: "header" 
          Header { 
           title: { 
            ListItemData 
           } 
          } 
         }, 
         // The tradeList Item 
         ListItemComponent { 
          type: "item" 
          Container { 
           id: tadawulList 
           layout: StackLayout { 
           // Here is I Changed layout orientation according to value 
            orientation: tadawulList.ListItem.view.getCurrentDirection()==true ? LayoutOrientation.LeftToRight : LayoutOrientation.RightToLeft 
           } 
           // Your more UI here 
          } 
         } 
        ] 
       } 
       Button { 
        onClicked: { 
         isLeft = !isLeft 
         //Refresh your listview here 
        } 
       } 
      } 
+0

, это отличная идея, проверка сейчас. Спасибо !!! – Sharath