private void DelItemFromPanel(int index)
    {
        int maxIndex = -1;
        int minIndex = int.MaxValue;

        for (int i = _itemList.Count; i > 0; i--)
        {
            LoopScrollItem item = _itemList[i - 1];
            if (item.Index == index)
            {
                Destroy(item.gameObject);
                _itemList.Remove(item);
            }
            if (item.Index > maxIndex)
            {
                maxIndex = item.Index;
            }

            if (item.Index < minIndex)
            {
                minIndex = item.Index;
            }

            if (item.Index > index)
            {
                item.Index -= 1;
            }
        }

        if (maxIndex < DataCount - 1)
        {
            CreateItem(maxIndex);
        }
    }
    //获取真实数据对应的Item
    public GameObject GetItem(int dataIndex_)
    {
        LoopScrollItem item_ = _itemList.Find(e => e.name == "Item_" + dataIndex_.ToString("D3"));

        if (item_ == null)
        {
            //Debug.LogError("scrollview error index_ = " + dataIndex_);
            return(null);
        }

        return(item_.gameObject);
    }
    private void AddItemIntoPanel(int index)
    {
        for (int i = 0; i < _itemList.Count; i++)
        {
            LoopScrollItem item = _itemList[i];
            if (item.Index >= index)
            {
                item.Index += 1;
            }
        }

        CreateItem(index);
    }
    public void UpdateItemContent(int index_)
    {
        if (_updateItem != null)
        {
            LoopScrollItem item_ = _itemList.Find(e => e.name == "Item_" + index_.ToString("D3"));
            if (item_ == null)
            {
                Debug.LogError("scrollview error index_ = " + index_);
                return;
            }

            _updateItem(index_, item_.gameObject);
        }
    }
    private void UpdateItem()
    {
        int index = GetPosIndex();

        if (index <= -1)
        {
            return;
        }

        _index = index;
        for (int i = _itemList.Count; i > 0; i--)
        {
            LoopScrollItem item = _itemList[i - 1];
            if (item.Index < index * maxPerLine || (item.Index >= (index + viewCount) * maxPerLine))
            {
                _itemList.Remove(item);
                _unUsedQueue.Enqueue(item);
            }
        }

        for (int i = _index * maxPerLine; i < (_index + viewCount) * maxPerLine; i++)
        {
            if (i < 0 || i > _dataCount - 1)
            {
                continue;
            }

            bool isOk = false;
            for (int j = 0; j < _itemList.Count; ++j)
            {
                if (_itemList[j].Index == i)
                {
                    isOk = true;
                    break;
                }
            }

            if (isOk)
            {
                continue;
            }

            CreateItem(i);
        }
    }