2016-05-21 8 views
0

Ich habe Probleme mit dem folgenden Code:QML Listview-Loader unerwünschtes vordefiniertes Verhalten

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 
     } 
    } 
} 

Was passiert, ist, dass, wenn der Momentanindex geändert wird, bevor die neue .qml-Datei geladen wird, die letzte animierte nach oben. Ich möchte es nur sofort laden, ohne die vordefinierte Animation. Haben Sie Vorschläge, wie Sie dieses Verhalten deaktivieren können?

Vielen Dank.

+0

Bitte senden Sie eine [MCVE] (http://stackoverflow.com/help/mcve), so können wir es laufen – folibis

+0

zu testen Gesendet. Danke fürs Testen im Voraus. –

Antwort

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 

     } 
    } 
} 
} 

Der kommentierte Code statt der aktuellen funktioniert richtig. Nichts bewegt sich. Der Strom funktioniert falsch, wenn man nach dem Klick auf die red.qml nach oben fährt.

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 
     } 
    } 
} 
} 
Verwandte Themen