2016-05-21 49 views
0

我有下面的代碼的麻煩:QML的ListView裝載機不需要預定義的行爲

ListModel{ 
     id: listModelWelcome 
     ListElement{ 
      url: "firstTime1.qml" 
     } 
     ListElement{ 
      url: "firstTime2.qml" 
     } 
     ListElement{ 
      url: "firstTime3.qml" 
     } 
    } 

ListView{ 
    id: listViewWelcome 
    z: 1 
    currentIndex: 1 
    model: listModelWelcome 
    delegate: Component{ 
     Loader{ 
      source: url 
     } 
    } 
} 

什麼情況是,當CURRENTINDEX改變時,加載新.qml文件之前,最後一個是動畫向上。我只想立即加載它,沒有預定義的動畫。 任何建議如何禁用此行爲?

謝謝。

+0

請發表[MCVE(http://stackoverflow.com/help/mcve),所以我們可以運行它來測試 – folibis

+0

發佈。感謝您提前測試。 –

回答

0
import QtQuick 2.4 
import QtQuick.Window 2.2 

Window { 

    id: root 
    visible: true 
     ListModel{ 
     id: listModelWelcome 
     ListElement{ 
      url: "red.qml" 
     } 
     ListElement{ 
      url: "blue.qml" 
     } 
    } 

ListView{ 
    id: listViewWelcome 
    currentIndex: 0 
    model: listModelWelcome   //1 
    delegate: Component{ 
     Loader{ 
      id: loaderWelcome 
      active: isFirstTime 
      source: url    //listModelWelcome.get(listViewWelcome.currentIndex).url 

     } 
    } 
} 
} 

評論代碼代替當前的作品正確。什麼都沒有動當前點擊red.qml後向上移動的方式是錯誤的。

red.qml

import QtQuick 2.0 

Item { 
x:0 
y:0 
width: root.width 
height: root.height 
Rectangle{ 
    anchors.fill: parent 
    color: "red" 
    MouseArea{ 
     anchors.fill: parent 
     onClicked: { 
      listViewWelcome.currentIndex = 1 
     } 
    } 
} 
} 

blue.qml

import QtQuick 2.0 

Item { 
x:0 
y:0 
width: root.width 
height: root.height 
Rectangle{ 
    anchors.fill: parent 
    color: "blue" 
    MouseArea{ 
     anchors.fill: parent 
     onClicked: { 
      //listViewWelcome.currentIndex = 1 
     } 
    } 
} 
}