首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中心QML ListView高亮显示项

中心QML ListView高亮显示项
EN

Stack Overflow用户
提问于 2015-04-16 05:59:49
回答 2查看 9.4K关注 0票数 6

在图片中,TestTest 1Test 2ListView中。在本例中,突出显示Test元素。如何修改视图行为以确保当前(高亮显示)项始终位于列表的中间?我想要达到的目标如下所示:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-16 10:18:21

您只需要highlightRangeModepreferredHighlightBeginpreferredHighlightEnd。从文件中:

这些属性在滚动列表时会影响当前项的位置。例如,当视图滚动时,如果当前选定的项应该保持在列表的中间,则将preferredHighlightBegin和preferredHighlightEnd值设置为中间项将位于的顶部和底部坐标。如果以编程方式更改了currentItem,列表将自动滚动,使当前项位于视图的中间。此外,无论是否存在突出显示,当前项索引的行为都将发生。

下面是一个水平ListView的完整示例,当前项位于中心。

代码语言:javascript
复制
import QtQuick 2.4
import QtQuick.Window 2.2

Window {
    width: 300
    height: 150
    visible: true

    ListView {
        anchors.fill: parent
        spacing: 5

        model: 20

        delegate:
            Rectangle {
            width: 30
            color: ListView.view.currentIndex === index ? "red" : "steelblue"

            height: ListView.view.height
            Text {
                anchors.centerIn: parent
                text: index
                font.pixelSize: 20
            }
        }

        orientation: Qt.Horizontal
        preferredHighlightBegin: 150 - 15
        preferredHighlightEnd: 150 + 15
        highlightRangeMode: ListView.StrictlyEnforceRange
    }
}
票数 14
EN

Stack Overflow用户

发布于 2015-04-16 07:26:03

您可以查看ListView的positionViewAtIndex方法,看看这是否有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29666456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档