接触这个插件也有差不多半年了,这段时间都是跟这个插件做的UI打交道,所以记一下相关的使用心得做备忘。

这个插件主要由三个脚本构成,分别是ListItemData(挂载在要展示的物体预制体身上的,物体对应的属性,初始化字段等均可以写在这里)(另,若存在一行有多个物体这样的情况,则需要两个ItemData,一个是单独的物体,另一个则是代表一行的物体,行物体初始化时调用行内所有物体的初始化方法,其他的类似),Picker(生成和排序物体的相关方法脚本,可以写入UI相关脚本中整合),data(数据的来源,也就是生成初始数据列表的地方,可以写入对应的data脚本中整合。)

使用时,只需要把LoopListView2挂在ScrollRect组件所在的物体上即可(一定要在同一个物体下,否则无法获取到)。然后将要重复显示使用的预制体拖入ItemPrefabList中即可。(拖到哪个里?就一个能拖进去的啊!)

这里面相关的参数大意如下:

ItemPadding:表示物体之间的间隔。若填0就贴在一起。

X/YposOffset:表示物体排序的偏移值。如果是上下滚动,这里显示的是X,否则显示Y。填0表示居中,否则会有偏移。

InitCreateCount:暂时不清楚有什么用……说明书里写表示最开始初始化的数量,但目前来看填几都差别不大。

下面的SupportScrollBar勾上后,可以支持滚动条。

ItemSnapEnable勾上后,将允许选中指定的物体并特殊显示。(如滚动时最中间的那一个物体始终放大表示被选中)下面的ItemSnapPivot和ViewPortSnapPivot可以调整选中目标的位置和偏移,具体可以自己调整,我不太清楚如何表达比较合适……

最下面的ArrangeType表示显示方式,依次是从上到下、从下到上、从左到右、从右到左。

设置好之后,将Picker脚本挂载到相应物体上(也可以不挂直接整合进UI中),Picker脚本主要有以下几个注意的地方。

1、需要一个生成物体的方法OnGetItemByIndex,具体可以参考范例中的写法。通常就是给物体赋一个编号,根据编号从对应容器里取出数据,塞给物体赋值,然后初始化,最后返回这个物体。

2、最大显示的数量、当前选中的目标index等也都在此脚本中声明和使用。

3、还需要一个LoopListView2的对象,将之前设置好的组件物体拖入,用来调用里面的方法。

弄好之后,在Start里面执行以下函数:(如果整合进UI里,就在UI初始化中执行)

LoopListView.InitListView(int,func)(前者表示这个表最多拥有多少个物体,如果填-1则表示无穷无尽,后者表示生成这个物体使用的方法,把1中的方法填进去即可)

4、需要刷新显示的物体数据时,直接修改容器内的数据,再调用RefreshAllShownItem方法即可。如果涉及增删操作,则需要先调用SetListItemCount方法调整最大值,否则会出现BUG。

5、给名为mOnSnapNearestChanged的Action指定方法,则当选中物体变化时就会调用该方法。(对选中物体特殊处理一般就在这里处理)

6、如果列表是不循环的,则首尾的物体不能被选中(因为无法居中)。这时候可以考虑做两个空白的物体替代物体,并修改对应代码引用。如果没有居中的需求,可以摒弃掉自带的选中,重写一个选中的方法。

7、MovePanelToItemIndex方法是直接瞬移到指定物体,而SetSnapTargetItemIndex方法则是滚动到指定物体处。

unityscrollview生成大量_superscrollviewforUGUI的一些使用心得相关推荐

  1. JAVA生成grib文件,Grib格式转换心得【转载】

    Grib格式转换心得 1.wgrib的使用 在cmd命令行下键入wgrib后即可察看wgrib相关命令参数,简要介绍如下: l Inventory/diagnostic–output selectio ...

  2. 自动生成小学四则运算题目的程序.心得体会

    http://t.cn/RAS67B0 源代码 #include<stdio.h> #include<stdlib.h> #include<time.h> main ...

  3. vue 如何生成一个dom元素_vue 学习心得——DOM树如何被构建

    代码编辑不够友好,为更好一点的阅读体验,还是推荐原文链接:https://www.yuque.com/longtengsong/blog/bu09tk DOM 树是 vue 在构建实例的时候,通过 $ ...

  4. python心得体会200字_50行代码让python自动生成文章

    不知道从小到大,我们被迫写了多少心得体会,多少人生感想,如果真情实地的去感受写作然后成长当然很好,但是更多的都是形式主义的需求,并没有人去看里面的内容,白白浪费我们多少大好时光,有时候我们ctrl,C ...

  5. python自动化写作_50行代码让python自动生成文章

    不知道从小到大,我们被迫写了多少心得体会,多少人生感想,如果真情实地的去感受写作然后成长当然很好,但是更多的都是形式主义的需求,并没有人去看里面的内容,白白浪费我们多少大好时光,有时候我们ctrl,C ...

  6. 50行python代码自动生成文章

    不知道从小到大,我们被迫写了多少心得体会,多少人生感想,如果真情实地的去感受写作然后成长当然很好,但是更多的都是形式主义的需求,并没有人去看里面的内容,白白浪费我们多少大好时光,有时候我们ctrl,C ...

  7. 学python心得体会800字-python心得体会

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 前些日子用python基于prometheus开发了一个vsphere volum ...

  8. 微信小程序开发系列一:微信小程序的申请和开发环境的搭建

    我最近也刚刚开始微信小程序的开发,想把我自学的一些心得写出来分享给大家. 这是第一篇,从零开始学习微信小程序开发.主要是小程序的注册和开发环境的搭建. 首先我们要在下列网址申请一个属于自己的微信小程序 ...

  9. 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 1

    我最近也刚刚开始微信小程序的开发,想把我自学的一些心得写出来分享给大家. 这是第一篇,从零开始学习微信小程序开发.主要是小程序的注册和开发环境的搭建. 首先我们要在下列网址申请一个属于自己的微信小程序 ...

最新文章

  1. linux nfs建立共享目录,linux下nfs磁盘共享目录
  2. CTF——Web——php 弱类型总结
  3. 论文浅尝 | 基于知识图谱的智能调研方法(DI佳作)
  4. JQuery中trim函数的具体实现代码
  5. LAMP架构mariadb/apache的安装及基本使用
  6. 用GDB调试Segmentation Fault错误
  7. 通过修改word文件,来屏蔽宏代码
  8. MySQL 字段操作命令
  9. powerDesigner 把name项添加到注释
  10. 【狂神说Redis】2Redis入门 2-4 Redis基础知识
  11. drools-基本使用
  12. 20155313 2016-2017-2《Java程序设计》课程总结
  13. redmi路由器是linux,拯救小米路由器硬盘数据的方法及软件下载
  14. python 计算开平方数
  15. 发布两款超1级能效空调 再次腰斩行业价 苏宁小Biu点燃空调市场
  16. 我可以在iPad上使用WhatsApp吗?
  17. 【Python】自动化办公之Excel拆分并自动发邮件
  18. MOOC微信小程序开发从入门到实践~笔记
  19. Vue进阶(幺玖叁):$OPTIONS 讲解
  20. 全志八核H8芯片可以同时播放13个720p视频窗口

热门文章

  1. python 列表嵌套字典 添加修改删除_【Python】列表嵌套字典修改字典里面的一个值却把全部的值都修改了。...
  2. org.apache.ibatis.reflection.ReflectionException: Error instantiating class with invalid types
  3. 微信JSAPI支付,报错当前页面的URL未注册
  4. .net core linux安装
  5. java使用validator进行校验
  6. IDEA中如何新建一个带有-P目录的项目
  7. c语言占用cpu的程序,Windows下用C语言获取进程cpu使用率,内存使用,IO情况
  8. Thread类中的join方法
  9. KindEditor富文本编辑器上传功能PHP语言报错问题
  10. easyui(一) 初始easyui