0

小さなディスプレイに大きなリストを表示したい。ListView の問題は、フリック可能な水平方向または垂直方向の向きを設定する必要があることです。

私が試したのは:

  1. ListView を Flickable に挿入し、Flickable を水平スクロール用に、ビューを垂直スクロール用に設定しましたが、同時に両側にフリックできません。
  2. ListView の flickableDirection プロパティを Flickable.Horizo​​ntalAndVerticalFlick に設定しようとしましたが、うまくいきませんでした。

簡単な例を次に示します。

import QtQuick 2.2
import QtQuick.Window 2.1

Window {
    visible: true
    width: 360
    height: 360

    ListModel {
        id: fruitModel

        ListElement {
            name: "Apple"
            cost: 2.45
        }
        ListElement {
            name: "Orange"
            cost: 3.25
        }
        ListElement {
            name: "Banana"
            cost: 1.95
        }
    }

    ListView {
        anchors.fill: parent

        model: fruitModel

        delegate: Rectangle {
            id: delegateRect
            height: 150
            width: 545

            border.color: "steelblue"
            border.width: 1

            Row {
                Text {
                    id: nameLabel
                    width: 345
                    text: name
                }

                Text {
                    id: costLabel
                    width: 200
                    text: cost
                }
            }
        }
    }
}
4

2 に答える 2

1

あなたが探している解決策は だと思いますRepeater

Repeater タイプは、多数の同様のアイテムを作成するために使用されます。他のビュー タイプと同様に、Repeater にはモデルデリゲートがあります。モデルのエントリごとに、モデルからのデータがシードされたコンテキストでデリゲートがインスタンス化されます。Repeater アイテムは通常、Row や Column などのポジショナー タイプで囲まれ、Repeater によって作成された複数のデリゲート アイテムを視覚的に配置します。

結果のRow( resp.)は、実際のフリック機能を提供するColumnで囲むことができます。Flickable

于 2014-11-10T09:02:10.203 に答える