for (int i = 0; i < list.Count; i++)
{
ST_BackPackItem item = list[i];
GameObject _go = NGUITools.AddChild(m_grid.gameObject, m_ItemPrefab.gameObject);
N_CBackpackItem backitem = _go.GetComponent<N_CBackpackItem>();
backitem.player_bag_index = item.player_bag_index;
backitem.setData(item, i);
UIEventListener.Get(backitem.btn.gameObject).onClick = null;
UIEventListener.Get(backitem.btn.gameObject).onClick += onClickitem;
UIEventListener.Get(backitem.btn.gameObject).onPress = null;
UIEventListener.Get(backitem.btn.gameObject).onPress += backitem.OnPress;
m_ItemList.Add(backitem);
item_toggles.Add(i, backitem.toggle);
yield return null;
m_grid.repositionNow = true;
if (currItemIndex == i)
{
initItem(m_ItemList[i].btn.gameObject);
}
else if ((currItemIndex > list.Count - 1) && (i == list.Count - 1))
{
initItem(m_ItemList[i].btn.gameObject);
}
}
如果grid一次加载过多的项,就会使得grid显示的时候很卡,可以使用协程一项项添加,并且添加一项就刷新一次。