Unity之WrapContent,列表滑动问题总结

本文总结了在Unity中使用WrapContent时遇到的常见问题,包括初始化未调用onInitializeItem方法、UpdateItem被调用两次的情况,以及只有一个Grid时的初始化和位置偏移问题。作者通过分析源码和自身经验,提出了相应的解决策略,并邀请读者分享更好的解决方案。
摘要由CSDN通过智能技术生成

通常我们遇到问题,都是在对滑动列表的各种操作中发现了不可预知的问题(废话)

下面我总结一下我遇到的一些问题:

1. WrapContent 初始化过程中没有调用 onInitializeItem 方法,为什么?

    我们可以打开UIWrapContent代码,一探究竟,从此方法来看,我们有可能在UIWrapContent初始化之前,没有

对 onInitializeItem进行实例化,导致没有进入到我们自身的回调方法。

protected virtual void UpdateItem (Transform item, int index)
{
	if (onInitializeItem != null)
	{
		int realIndex = (mScroll.movement == UIScrollView.Movement.Vertical) ?
			Mathf.RoundToInt(item.localPosition.y / itemSize) :
			Mathf.RoundToInt(item.localPosition.x / itemSize);
		onInitializeItem(item.gameObject, index, realIndex);
	}
}

2. 当我们只有一个Gird的时候WrapContent的UpdateItem调用了两次,为什么?

我们发现调用UpdateItem地方有很多,但是总结归纳起来,有两个地方在调用

protected virtual void Start ()
{
	SortBasedOnScrollMovement();
	WrapContent();
	if (mScroll !&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值