滚动视图 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
}
}
}
在这个例子中,看起来这是一个单一的模型,但他们会使用不同的荧光笔。
我有一个滚动视图,我想在其中放置两个具有相同委托但具有不同模型的网格视图。但是,我希望他们 "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
}
}
}
在这个例子中,看起来这是一个单一的模型,但他们会使用不同的荧光笔。