当调整GridView的大小并重新排列元素时,这些元素的动画似乎不起作用。
在这里您可以找到一个简单的例子:http://pastebin.com/BgST6sCv
如果单击示例中的某个方块,则会正确触发动画。
但是如果您调整窗口大小以便GridView必须重新排列它的元素,则不会触发动画。
有没有办法解决这个问题?可能没有任何C ++?
编辑:
我正在使用目前包含Qt 4.7.3的Qt SDK 1.1
答案 0 :(得分:2)
此代码将执行此操作。基本上,您需要创建一个虚拟委托项,然后在其中创建具有相同宽度,高度,x和y值的另一个项。将内部项的父级设置为网格视图。这是你的代码修改为很好的动画。
import QtQuick 1.0
Rectangle {
id: mainRect
width: 300; height: 400
ListModel {
id: appModel
ListElement { modelcolor: "#FF0000"}
ListElement { modelcolor: "#00FF00"}
ListElement { modelcolor: "#0000FF"}
}
Component {
id: appDelegate
Item {
id: main
width: grid.cellWidth; height: grid.cellHeight
Rectangle {
id: item; parent: grid
x: main.x; y: main.y
width: main.width; height: main.height;
color: modelcolor
Behavior on x { NumberAnimation { duration: 400; easing.type: Easing.OutBack } }
Behavior on y { NumberAnimation { duration: 400; easing.type: Easing.OutBack } }
}
}
}
GridView {
id: grid
anchors.fill: parent
model: appModel
delegate: appDelegate
interactive: false
MouseArea {
anchors.fill: parent
onClicked: {
appModel.insert(1, { "modelcolor": "yellow" } )
}
}
}
}