ListView的委托delegate只能指定一个对象,大多数情况下,项目需要实现一个ListView中存在多种布局组件实现不同效果。
采用Loader组件可以实现以上效果。
Loader
Loader组件用于动态加载QML组件。
举例:
import QtQuick 2.0
Item {
width: 200; height: 200
Loader { id: pageLoader }
MouseArea {
anchors.fill: parent
onClicked: pageLoader.source = "Page1.qml"
}
}
当且仅当,鼠标在目标区域进行点击后(也即是在对Loader的source属性进行配置后),Loader才动态加载资源。
若我们将ListView的委托delagete付与loader,且对Loader的source属性进行动态配置,则可以实现动态代理