import QtQuick 2.0 Rectangle { width: 400 height: 400 property int counter: 0 ListModel { id: list_model onRowsAboutToBeInserted: { var middle = (first + last)/2; list_view.positionViewAtIndex(middle, ListView.Center); } Component.onCompleted: { for (var i = 0; i < 1000; ++i) { list_model.append({ text: 'hello ' + (++counter) }); } } } ListView { id: list_view anchors.fill: parent model: list_model delegate: Row { Text { text: model.text } } } MouseArea { anchors.fill:parent onClicked: { var at = Math.random() * (list_model.count - 1); list_model.insert(at, {text: 'hello ' + (++counter)}); } } }