Herkesin bildiği gibi, bazı öğeleri kafasına yerleştirdiğimde QML ListView aşağı kaydırmayı nasıl önleyebilir? ListView her zaman kendi konumunu koruyor ve sadece açık fiske mümkün olduğunda, Twitter benzeri bir şekilde güncellemek istiyorum.QML ListView: Yeni öğeler eklendiğinde otomatik gözden geçirmeyi nasıl devre dışı bırakabilirim?
5
A
cevap
0
ListView'ün currentItem
veya currentIndex
özelliğini kullanarak yeni eklenen öğeyi veya vurgulamak istediğiniz herhangi bir öğeyi vurgulayabilirsiniz.
0
Aslında insert işlevi işini gerçekleştirdi. Üstte veya bu modelName.insert(0,{object});
gibi istenen herhangi bir konumda ekleyebilirsiniz. Çalışan bir örnek burada. Vurgulamak istemiyorum.
import QtQuick 1.0
Rectangle {
id: rectangle1
width: 320
height: 480
ListModel {
id: cModel
ListElement {
name: "Bill Smith"
number: "555 3264"
}
ListElement {
name: "John Brown"
number: "555 8426"
}
ListElement {
name: "Sam Wise"
number: "555 0473"
}
}
ListView {
id: list_view1
width: rectangle1.width
height: rectangle1.height - 40
anchors.horizontalCenter: parent.horizontalCenter
delegate: Text {
text: name + ": " + number
}
model: cModel
}
Rectangle {
id: rectangle2
width: 320
height: 40
color: "#ffffff"
anchors.top: list_view1.bottom
Text {
id: text1
text: qsTr("Click to add!")
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 16
MouseArea {
id: mouse_area1
anchors.fill: parent
onClicked: addNewItemTop();
}
}
}
function addNewItemTop()
{ var i = Math.random();
cModel.insert(0,{"name" : "New Number", "number":i.toString()});
}
}
Herhangi bir kaydırma yapmadan currentItem'in üstüne yeni öğeler eklemek istiyorum. –