热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ListView学习2--使用ListView做上下翻页

ListView想要做到上下翻页的效果需要使用如下参数positionViewAtIndex(intindex,PositionModemode)P
ListView想要做到上下翻页的效果需要使用如下参数
positionViewAtIndex(int index,PositionMode mode) Positions the view such that the index is at the position specified by mode:
  • ListView.Beginning - position item at the top (or left for horizontal orientation) of the view.
  • ListView.Center - position item in the center of the view.
  • ListView.End - position item at bottom (or right for horizontal orientation) of the view.
  • ListView.Visible - if any part of the item is visible then take no action, otherwise bring the item into view.
  • ListView.Contain - ensure the entire item is visible. If the item is larger than the view the item is positioned at the top (or left for horizontal orientation) of the view.
  • ListView.SnapPosition - position the item at preferredHighlightBegin. This mode is only valid if highlightRangeMode is StrictlyEnforceRange or snapping is enabled via snapMode.
If positioning the view at index would cause empty space to be displayed at the beginning or end of the view, the view will be positioned at the boundary. It is not recommended to use contentX or contentY to position the view at a particular index. This is unreliable since removing items from the start of the list does not cause all other items to be repositioned, and because the actual start of the view can vary based on the size of the delegates. The correct way to bring an item into view is with positionViewAtIndex. Note: methods should only be called after the Component has completed. To position the view at startup, this method should be called by Component.onCompleted. For example, to position the view at the end:
  Component.onCompleted: positionViewAtIndex(count - 1, ListView.Beginning) 这个methods是通过定位一个元素,将其放置在一个指定的位置。
不多说,直接上代码: 下面贴上一段上下翻页的效果代码: 在下面代码中创建上一页和下一页按钮 property int num :0     property int messageNumber : 9 Item{         id:upAndDownPage         width: ticketMessageImage.width         height: ticketMessageImage.height         anchors{horizontalCenter: checkMessageBoxImage.horizontalCenter;bottom: checkMessageBoxImage.bottom;bottomMargin: 15}
        Row{             spacing: 100             anchors{horizontalCenter: upAndDownPage.horizontalCenter;verticalCenter: upAndDownPage.verticalCenter} //一页只放10条,也只能显示10条,这样就不会产生滑动,当选择下一页的时候,将数据再以10条为单位放入listmodel中,进行显示             Item{                 id:upTurnPage                 width: upTurnPageText.width                 height:upTurnPageText.height //                color: "#30FFFF"                 Text {                     id: upTurnPageText                     text: qsTr("上一页")                     font.pixelSize: 30                     color: "white"                 }                 MouseArea{                     anchors.fill: upTurnPage                     //16                     onClicked:{                         num = num - messageNumber;                         if(num <= 0)                         {                             num = 0;                         }                         recordList.positionViewAtIndex(recordList.count - recordList.count +  num,ListView.Beginning);                         console.log(recordList.count - recordList.count +  num)                     }                 }             }
            Rectangle{                 id:downTurnPage                 width: downTurnPageText.width                 height:downTurnPageText.height                 color: "#30FFFF"                 Text {                     id: downTurnPageText                     text: qsTr("下一页")                     color: "white"                     font.pixelSize: 30                 }                 MouseArea{                     anchors.fill: downTurnPage                     onClicked:{                         //5为一个界面显示多少条信息,可用变量                         num = num + messageNumber;                         if(num >= recordList.count-messageNumber)                         {                             num = recordList.count-messageNumber;                         }                         recordList.positionViewAtIndex(recordList.count-recordList.count+num,ListView.Beginning);                         console.log(recordList.count-recordList.count+num)                     }                 }             }         }     } }
在下面的代码中创建ListView视图 Item {         id:checkHistoralRecordTitleItem         width: ticketMessageImage.width         anchors{top:historicalRecordImage.bottom;topMargin:10; horizontalCenter: checkMessageBoxImage.horizontalCenter}         height:35 //        color:"#33FFFF"
        Item {             id: tradeTimeItem             width:parent.width*0.25             height:24             Text{                 id:tradeTimeText                 color: "yellow"                 text:"交易时间"                 font.pixelSize: 24                 anchors{verticalCenter: tradeTimeItem.verticalCenter;horizontalCenter: tradeTimeItem.horizontalCenter}             }         }
        Item {             id: terminalNumberItem             width:parent.width*0.25             height:24             anchors{left:tradeTimeItem.right;verticalCenter: tradeTimeItem.verticalCenter }             Text{                 id:terminalNumberItemText                 color: "yellow"                 text:"终端编号"                 font.pixelSize: 24                 anchors{verticalCenter: terminalNumberItem.verticalCenter;horizontalCenter: terminalNumberItem.horizontalCenter}             }
        }
        Item {             id: tradeTypeItem             width:parent.width*0.25             height:24             anchors{left:terminalNumberItem.right;verticalCenter: tradeTimeItem.verticalCenter }             Text{                 id:tradeTypeItemText                 color: "yellow"                 text:"类型"                 font.pixelSize: 24                 anchors{verticalCenter: tradeTypeItem.verticalCenter;horizontalCenter: tradeTypeItem.horizontalCenter}             }
        }
        Item {             id: tradeMoneyItem             width:parent.width*0.25             height:24             anchors{left:tradeTypeItem.right;verticalCenter: tradeTimeItem.verticalCenter }             Text{                 id:tradeMoneyItemText                 color: "yellow"                 text:"金额"                 font.pixelSize: 24                 anchors{verticalCenter: tradeMoneyItem.verticalCenter;horizontalCenter: tradeMoneyItem.horizontalCenter}             }
        }     }

    Item{         id:historicalRecordItem         width:historicalRecordImage.width         height:300         anchors{top:checkHistoralRecordTitleItem.bottom;topMargin:10; horizontalCenter: checkMessageBoxImage.horizontalCenter}         Column{             ListView{                 id:recordList                 width: historicalRecordItem.width                 height: historicalRecordItem.height                 spacing:10                 clip:true                 model:tradeRecordList                 delegate:HMBOMCheckViewHistorialRecordContextMode{}             }         }     }

在本地创建ListModel用于测试 ListModel{         id:tradeRecordList         ListElement{tradeTimeRecord:"00/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"01/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"02/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"03/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"04/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"05/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"06/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"07/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"08/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"09/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"10/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"11/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"12/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"13/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"14/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"15/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"16/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"17/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"18/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"19/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}         ListElement{tradeTimeRecord:"20/10/13 08:00:59";tradeTerminalRecord:"XXXXXXXXXXXX";             tradeTypeRecord:"XXXXXXXXXXXXXX";tradeMoneyRecord:"20元"}     }
运行效果如下:
推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
author-avatar
sdauilk_299
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有