这是一个生成网格view的模块,基于Matrix控件实现。
- 使用JSBox扫描二维码安装模块
GridView,代码 - 在JSBox中点击左上角设置按钮->模块管理->右上角加号按钮->从脚本导入,导入上一步添加的模块文件
- 安装Demo脚本
GridViewDemo
-
引入模块
const GridViewMaker = require('GridView')
-
生成view
$ui.render({ props: { debugging: false }, layout: $layout.fill, views: [GridViewMaker('demo', { colunms: 2, }, [0, 1, 2, 3], (sender, indexPath, data) => { $alert(data) })] })
/**
* 生成网格view对象
* @param {?String} identifier view的id
* @param {?Dictionary} options view的配置项
* @param {?Number} options.colunms cell列数
* @param {?Number} options.height cell高度
* @param {?Number} options.margin cell间距
* @param {!Array} dataList 数据
* @param {!Function} didSelectCallback 点击事件回调
* @returns {Object} 网格view对象
*/
let maker = (identifier, options, dataList, didSelectCallback) => {
...
}-
identifier表示view的id,在外部引用这个view的时候会用到,传入null将设置为默认值matrix。 -
options可以按需配置,传入null将设置为默认值{ colunms: 1, // cell的列数 margin: 5, // cell的边距 height: 40, // cell的高度 }
-
dataList表示数据,数组的元素可以是任意对象、字符串或数字,展示在cell里的内容会优先匹配对象的name,title,id属性,若都不存在则设置为元素自身 -
didSelectCallback表示点击事件的回调函数,在这个函数里面处理点击相应的操作,函数带有三个参数:sender:一般情况下是网格view自己indexPath:就是indexPathdata:dataList数组里的一个元素