Kod parçanızın çalışmasını sağlayamadım-kodunuzun içeriğine bağlı olması gerektiği gibi görünüyor. ScrollView
ancak bu, kod parçanıza dahil değildir ve diğer bazı referanslar eksik olabilir.
Her neyse, buna biraz farklı yaklaşmanızı öneririm - ScrollView
's içerik genişliği olsun veya olmasın dayalı ScrollBar
görülebilir. Ben de ayarladım ScrollBar
görünürlük yerine politika. Gösteri için bir kaydırıcı kullanarak içerik ekleyebileceğiniz veya kaldırabileceğiniz tam bir örnek oluşturdum:
import QtQuick 2.15
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
ApplicationWindow {
id: root
visible: true
height: 500
width: 500
ColumnLayout {
anchors {
fill: parent
}
Slider {
// use slider to add delegates to the ScrollView to toggle the scroll bar visibility
id: slider
to: 20
}
ScrollView {
id: scroll
Layout.fillHeight: true
Layout.fillWidth: true
ScrollBar.vertical.policy: scrollBarVisible ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
property bool scrollBarVisible: scroll.contentHeight > scroll.height
ColumnLayout {
width: scroll.scrollBarVisible ? scroll.width - scroll.ScrollBar.vertical.width : scroll.width // change the width of the
Repeater {
model: slider.value
delegate: Rectangle {
color: "tomato"
Layout.fillWidth: true
Layout.preferredHeight: 150
}
}
}
}
}
}
Tek bir şey bile dikkat etmek senin ScrollView
içeriğin yüksekliği genişliğine bağlı olamaz, örneğin içeriğin bir kısmı varsa Text
bu, yeterli genişlik yoksa sarar ve genişlik azaldığında daha uzun olmasına neden olur. Bu, sonsuz döngü bölgesine geri dönecektir.