Tengo un GridLayout poblada por un Repetidor (un formato tableview no se adapta a mis necesidades), dentro de una Flickable para que yo pueda desplazarse por el contenido.
Quiero que mi GridLayout tener un encabezado, el cual me puede fácilmente mediante la adición de Text
s antes de mi Repetidor como este:
import QtQuick 2.0
import QtQuick.Layouts 1.12
ColumnLayout {
width: 200
height: 200
Flickable {
Layout.fillWidth: true
Layout.preferredHeight: 200
contentWidth: width
contentHeight: grid.height
clip: true
GridLayout {
id: grid
columns: 3
columnSpacing: 10
function reparentChildren(source, target) {
while (source.children.length) {
source.children[0].parent = target;
}
}
// Header
Text {
text: "Header 0"
}
Text {
text: "Header 1"
}
Text {
text: "Header 2"
}
// Data
Repeater {
model: 50
Item {
Component.onCompleted: grid.reparentChildren(this, grid)
Text {
text: "Column 0, %1".arg(modelData)
}
Text {
text: "Column 1, %1".arg(modelData)
}
Text {
text: "Column 2, %1".arg(modelData)
}
}
}
}
}
}
Sin embargo, me gustaría que mi cabecera "pegajosa" / "congelada", es decir, permanecen visibles al desplazarse el Flickable. Pude crear mi cabecera fuera de la Flickable, sin embargo, el GridLayout no me da el final de la fila de los tamaños, así que no puedo posición de mi cabecera textos.