Skip to content

简介

介绍:qt-grid-view是由tv-list 而实现的网格排版的ui组件,常用于多行多列的内容排版。仅支持纵向排列,支持数据分页。

特点,初始化组件返回数据代理值,直接操作返回值更新ui视图,减少冗余api,降低开发成本。

注意,不支持qt-grid-view嵌套,最低支持SDK版本2.1

注意,组件中默认item样式使用qt-poster,在构建数据中可查看其使用方式。也可自定义item。

效果预览

Grid

tv-list区别

GridView属性包含tv-list属性

GridView通过init初始化组件返回数据的代理,更直观操作数据更新试图,开发者不需要直接调用tv-list的更新视图相关api

GridView也基本上继承tv-list相关的api,详情可查看api文档

GridView内部兼容了tv-listspanCount属性,最低兼容SDK2.1版本(tv-listspanCount属性只在2.2生效)

属性

参数类型默认值可选值说明
:initPositionMapfocusPosition:请求焦点的位置,可以不传,不传不会请求焦点;scrollToPosition:首次滚动的位置,可以不传;scrollOffset:首次滚动的偏移量,可以不传。示例如下。
:listenBoundEventBooleanfalse是否开启view绑定监听回调,开启分页时必须设置该参数为true
:disableScrollOnFirstScreenBooleanfalse是否开启列表在展示第一屏数据时切换焦点不滑动
:checkScrollOffsetOnStateChangedBooleanfalse是否开启grid-view滑动事件onScrollStateChanged监听回调
:scrollEventThrottleInt400grid-view滑动事件onScrolled监听回调间隔时间,配合onScrollEnable属性使用,单位:毫秒
:onScrollEnableBooleanfalse是否开启grid-view滑动事件onScrolled监听回调
:scrollYLesserReferenceValueInt-1grid-view向上滑动偏移量,配合onScrollEnable属性使用
:scrollYGreaterReferenceValueInt-1grid-view向下滑动偏移量,配合onScrollEnable属性使用
:layoutTargetPositionInt-1指定某个item更新外部定义方法,详情请见TriggerTaskModule
:makeChildVisibleTypeString"center"指定某个子视图显示在屏幕中位置的类型,共分为:center:居中显示;normal:默认显示; none:只显示viewgroup矩形区域
:makeChildVisibleClampBackwardInt0焦点向下,列表上滑到屏幕中最后一个元素时的向上滑动偏移量(只有在:makeChildVisibleType属性不为center时有效)
:makeChildVisibleClampForwardInt0焦点向上,列表下滑到屏幕中最后一个元素时的向下滑动偏移量(只有在:makeChildVisibleType属性不为center时有效)
:scrollThresholdHorizontalInt300列表水平滑动时触发item显示在屏幕正中间位置的阀值(超过阀值则触发,只有在:makeChildVisibleType属性为center时有效)
:scrollThresholdVerticalInt50列表垂直滑动时触发item显示在屏幕正中间位置的阀值(超过阀值则触发,只有在:makeChildVisibleType属性为center时有效)
:cachePoolMap设置adapter的缓存池;示例cachePool:{ name:"tvList"+Date.now(), size:{ 10000:10, } },
:cachePoolNameString设置当前使用缓存池名称
:focusMemoryBooleantrue是否开启焦点强制移动(寻焦速度更快)
:setSelectChildPositionInt0设置选中的子view,此属性只在view已经显示出来才有效
:shakePreCheckNumberInt2设置列表滑动到底部触发回弹动画时的提前量(横向滑动时是滑动到最右)
:endHintEnabledBooleantrue是否开启列表回弹动画
:listenFocusSearchOnFailBooleantrue是否开启当焦点寻焦失败时的事件回调
:enableSelectOnFocusBooleantrue是否开启指定获取焦点
:useAdvancedFocusSearchBooleantrue是否关闭recyclerView的默认焦点搜索
:enableKeepFocusBooleanfalse是否开启焦点预处理
:initFocusPositionAfterLayoutInt-1设置焦点初始默认位置
:blockFocusDirectionsArray在某个方向锁住焦点
:defaultFocusNumber初始化时默认选中焦点的位置
:loadMoreFunction开启分页的回调,接收(pageNo)根据页码处理数据 openPage为true时生效
:openPageBooleanfalse是否开启分页
:pageSzieNumber分页每页条数 openPage为true时生效
:areaWidthNumber1200当runtime版本低于2.2时 需要设置宽度
:spanCountIntgrid-view的列数
  • initPosition参数:
参数名类型说明
focusPositionInt焦点默认位置
scrollToPositionInt默认滑动位置
scrollOffsetInt滑动偏移量
  • horizontal属性:切换列表为横向滑动(注意:不可动态改变此属性,竖向滑动时不需要配置此属性),类型:String
点击查看源码
html
  <qt-grid-view class="grid-view_root" horizontal="true">
      <div class="item_root1"
          type="1">
            ...  
      </div>
  </qt-grid-view>
  • advancedFocusSearchSpan属性:寻焦搜索范围,类型:Int
点击查看源码
html
  <qt-grid-view class="grid-view_root" advancedFocusSearchSpan="1">
       <div class="item_root1"
            type="1">
                ...  
       </div>
  </qt-grid-view>
  • padding属性:定义grid-view的内部间距(顺序:left,top,right,bottom) 类型:String
点击查看源码
html
  <qt-grid-view class="grid-view_root" padding="60,0,0,0">
       <div class="item_root1"
            type="1">
                ...  
       </div>
  </qt-grid-view>

注意事项

  1. grid-view还可以添加header类型的数据 slot='header' 该类型数据需要在data中体现

  2. grid-view中每个item的margin无效,需要数据中decorate的值来设置外边距