QML-タッチ、キーナビゲーション、またはサイドアップ/ダウンナビゲーションボタンのいずれかで制御されるListViewがあります。ListView はプログラムのさまざまな部分で使用され、常にリスト内の項目数が異なります。キー ナビゲーション (keyPressLeft) を使用してサイド ナビゲーションから ListView に移動するときに、ListView の現在のページの中央にフォーカスを設定したいと考えています。現在使用しているコードは、1 ページあたり 5 項目のリストで機能しますが、より動的にする必要があります。現在使用しているコードは次のとおりです。
Keys.onLeftPressed: {
var first = menu.indexAt(0, menu.contentY+5)
var mid
if (first == menu.count-1) {
mid = first
} else if (first ==menu.count-2) {
mid = first+1
} else {
mid = first+2
}
menu.currentIndex= mid //menu.indexAt(0, menu.contentY+5) + 2
keyPressLeft.currentItem.forceActiveFocus()
}