Кто-нибудь знает, как предотвратить прокрутку QML ListView, когда я добавляю некоторые элементы в его заголовок? Я хочу обновить ListView в стиле Twitter, когда он всегда сохраняет свою позицию и возможен только явный щелчок.
QML ListView: как отключить автопрокрутку при вставке новых элементов?
Ответы (2)
Вы можете использовать свойство currentItem
или currentIndex
ListView, чтобы выделить только что добавленный элемент или любой элемент, который вы хотите выделить.
person
RajaRaviVarma
schedule
24.11.2011
не хочу выделять. Я хочу вставлять новые элементы поверх текущего элемента без прокрутки.
- person Pavel Osipov; 25.11.2011
На самом деле функция insert выполнила свою работу. Вы можете вставить его вверху или в любом другом месте, например modelName.insert(0,{object});
. Рабочий пример здесь.
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()});
}
}
person
RajaRaviVarma
schedule
09.12.2011