滚动视图 QML 中的多个网格视图

Multiple gridviews inside scrollview QML

我有一个滚动视图,我想在其中放置两个具有相同委托但具有不同模型的网格视图。但是,我希望他们 "share" 突出显示功能,尽管我希望模型以不同方式突出显示。这可能吗?现在,gridviews 在 scrollview 内重叠。

    ScrollView {
    anchors.fill: parent
    GridView{
        id: grid
        anchors.fill: parent
        cellHeight: 30
        cellWidth: parent.width
        model: model1
        delegate: delegate
        highlight: Rectangle {
            color: "red";
            radius: 5
            focus:true
        }
    }


    GridView {
        focus: true
        model: model2
        delegate: delegate
    }

当您位于第一个模型的最后一项和最后一个模型的第一项时,您可以使用附加的 KeyNavigation 属性 覆盖 up/down 按钮。

一个使用 ListViews 的例子:

Column {
    anchors.fill: parent
    ListView{
        id: list1
        focus: true
        onFocusChanged: focus ? currentIndex = model1.count-1 : currentIndex = -1
        height: contentHeight
        width: parent.width
        model: model1
        delegate: Text { text: name }

        highlight: Rectangle { color: "red"; radius: 5 }
        KeyNavigation.down: list2
        onCurrentIndexChanged: {
            if (currentIndex == model1.count-1)
                KeyNavigation.priority=KeyNavigation.BeforeItem
            else
                KeyNavigation.priority=KeyNavigation.AfterItem
        }
    }
    ListView {
        id:list2
        focus: false
        onFocusChanged: focus ? currentIndex = 0 : currentIndex = -1
        currentIndex: -1
        model: model2
        height: contentHeight
        width: parent.width
        delegate: Text { text: name }
        highlight: Rectangle { color: "blue"; radius: 5 }
        KeyNavigation.up: list1
        onKeyNavigationWrapsChanged: console.log("k")
        onCurrentIndexChanged: {
            if (currentIndex == 0)
                KeyNavigation.priority=KeyNavigation.BeforeItem
            else
                KeyNavigation.priority=KeyNavigation.AfterItem
        }
    }
}

在这个例子中,看起来这是一个单一的模型,但他们会使用不同的荧光笔。