3
我有一個帶有RowLayout的ColumnLayout。 RowLayout按預期定位。如果窗口正在調整大小,則也是如此。即使窗戶比整個ColumnLayout較小(見第二圖像)ListView未按預期定位在佈局中
但是,如果我用(水平)的ListView更換的RowLayout,因爲我希望這個ListView控件沒有定位。我希望這個行爲就像用的RowLayout的例子,但ListView的定位更高:
如果窗口變「小」藍色矩形「移動到」第一例不同ListView控件:
我怎樣才能實現與一個ListView第一個例子中的行爲嗎?
來源
import QtQuick 2.0
import QtQuick.Layouts 1.1
Rectangle {
width: 360
height: 360
ColumnLayout {
anchors.fill: parent
anchors.margins: 20
Item {
Layout.fillHeight: true
}
/*
ListView {
Layout.fillHeight: true
Layout.fillWidth: true
orientation: ListView.Horizontal
spacing: 5
model: 3
delegate: Rectangle {
width: 50
height: 50
color: "red"
}
}
*/
RowLayout {
Layout.fillHeight: true
Layout.fillWidth: true
Rectangle {
width: 50
height: 50
color: "red"
}
Rectangle {
width: 50
height: 50
color: "red"
}
Rectangle {
width: 50
height: 50
color: "red"
}
}
Item {
Layout.fillHeight: true
}
Rectangle {
width: 50
height: 50
color: "blue"
}
}
}
這適用於這個特定的例子。但如果代表的高度是動態的呢? ListView高度的硬編碼值無法正常工作...這是因爲我嘗試了Layout.fillHeight:true – avb
我將'ListView'' height'屬性設置爲'childrenRect.height' - 'height:childrenRect.height'。如果每個委託實例都有一個具體的,正面的「高度」屬性(就像我的用例那樣),那麼'childrenRect.height'似乎工作。 –