Unity UI控件用法汇总
利用LoopListView实现Banner循环列表,且默认中间节点为默认节点:
1.给ScrollRect节点添加LoopListView组件,并勾选ItemSnapEnable为true。
2.通过LoopListView.InitListView初始化时,totalCount需要传-1.
3.OnGetItemByIndex的回调参数index以(Int32.MinValue,Int32.MaxValue),需要自己做好与数据的索引换算。
4.左右拖动的列表下,一般集成通过GridLayoutGroup冲纠正节点往上偏移一半问题,但snap跟GridLayoutGroup冲突,所以通过StartPosOffset纠正节点位置。可以在创建Item时就设置。
(如果是上下拖动的列表,那么StartPosOffset就是x偏移值。)
5.getCurSnapNearestItemIndex没变,不会触发_onSnapNearestChanged,如果通过初始化时隐藏select节点且在_onSnapNearestChanged触发select逻辑,需要自己数据更新RefreshAllShownItem后或重新进入界面重进onEnter触发一下 MoveToItemIndex。
6.有些项目,界面关闭onExit清理节点但是界面未销毁,且界面重进onEnter不重建LoopListView的话,需要程序在onEneter时重新创建元素节点,所以本人实现时onExit清理元素节点,在销毁时才清理+释放。
7.如题,打开界面需要选中第一个元素,但是默认会以第二个显示,MoveToItemIndex和SetSnapTargetItemIndex后是通过update渐变改变位置,需要通过loopListView:FinishSnapImmediately()立即刷新节点的snap后的位置。