public LoopStaggeredGridViewItem GetNewItemByGroupAndIndex(int groupIndex, int indexInGroup) { if (indexInGroup < 0) { return(null); } if (mItemTotalCount == 0) { return(null); } LoopStaggeredGridViewItem newItem = null; int index = 0; List <int> mItemIndexMap = mItemGroupList[groupIndex].ItemIndexMap; int count = mItemIndexMap.Count; if (count > indexInGroup) { index = mItemIndexMap[indexInGroup]; newItem = mOnGetItemByItemIndex(this, index); if (newItem == null) { return(null); } newItem.StartPosOffset = mLayoutParam.mCustomColumnOrRowOffsetArray[groupIndex]; newItem.ItemIndexInGroup = indexInGroup; newItem.ItemIndex = index; newItem.ItemCreatedCheckFrameCount = mListUpdateCheckFrameCount; return(newItem); } if (count != indexInGroup) { return(null); } int curMaxCreatedItemIndexCount = mItemIndexDataList.Count; if (curMaxCreatedItemIndexCount >= mItemTotalCount) { return(null); } index = curMaxCreatedItemIndexCount; newItem = mOnGetItemByItemIndex(this, index); if (newItem == null) { return(null); } mItemIndexMap.Add(index); ItemIndexData indexData = new ItemIndexData(); indexData.mGroupIndex = groupIndex; indexData.mIndexInGroup = indexInGroup; mItemIndexDataList.Add(indexData); newItem.StartPosOffset = mLayoutParam.mCustomColumnOrRowOffsetArray[groupIndex]; newItem.ItemIndexInGroup = indexInGroup; newItem.ItemIndex = index; newItem.ItemCreatedCheckFrameCount = mListUpdateCheckFrameCount; return(newItem); }
public float GetItemAbsPosByItemIndex(int itemIndex) { if (itemIndex < 0 || itemIndex >= mItemIndexDataList.Count) { return(-1); } ItemIndexData tData = mItemIndexDataList[itemIndex]; return(mItemGroupList[tData.mGroupIndex].GetItemPos(tData.mIndexInGroup)); }
public float GetItemAbsPosByItemIndex(int itemIndex) { if (itemIndex < 0 || itemIndex >= this.mItemIndexDataList.Count) { return(-1f); } ItemIndexData mItemIndexData = this.mItemIndexDataList[itemIndex]; return(this.mItemGroupList[mItemIndexData.mGroupIndex].GetItemPos(mItemIndexData.mIndexInGroup)); }
public void RefreshItemByItemIndex(int itemIndex) { ItemIndexData itemIndexData = this.GetItemIndexData(itemIndex); if (itemIndexData == null) { return; } this.GetItemGroupByIndex(itemIndexData.mGroupIndex).RefreshItemByIndexInGroup(itemIndexData.mIndexInGroup); }
public void OnItemSizeChanged(int itemIndex) { ItemIndexData itemIndexData = this.GetItemIndexData(itemIndex); if (itemIndexData == null) { return; } this.GetItemGroupByIndex(itemIndexData.mGroupIndex).OnItemSizeChanged(itemIndexData.mIndexInGroup); }
/* * To update a item by itemIndex.if the itemIndex-th item is not visible, then this method will do nothing. * Otherwise this method will first call onGetItemByIndex(itemIndex) to get a updated item and then reposition all visible items'position. */ public void RefreshItemByItemIndex(int itemIndex) { ItemIndexData indexData = GetItemIndexData(itemIndex); if (indexData == null) { return; } StaggeredGridItemGroup group = GetItemGroupByIndex(indexData.mGroupIndex); group.RefreshItemByIndexInGroup(indexData.mIndexInGroup); }
/* * For a vertical scrollrect, when a visible item’s height changed at runtime, * then this method should be called to let the LoopStaggeredGridView component reposition all visible items’ position of the same group (that is the same column / row). * For a horizontal scrollrect, when a visible item’s width changed at runtime, * then this method should be called to let the LoopStaggeredGridView component reposition all visible items’ position of the same group (that is the same column / row). */ public void OnItemSizeChanged(int itemIndex) { ItemIndexData indexData = GetItemIndexData(itemIndex); if (indexData == null) { return; } StaggeredGridItemGroup group = GetItemGroupByIndex(indexData.mGroupIndex); group.OnItemSizeChanged(indexData.mIndexInGroup); }
//To get the visible item by itemIndex. If the item is not visible, then this method return null. public LoopStaggeredGridViewItem GetShownItemByItemIndex(int itemIndex) { ItemIndexData indexData = GetItemIndexData(itemIndex); if (indexData == null) { return(null); } StaggeredGridItemGroup group = GetItemGroupByIndex(indexData.mGroupIndex); return(group.GetShownItemByIndexInGroup(indexData.mIndexInGroup)); }
public LoopStaggeredGridViewItem GetShownItemByItemIndex(int itemIndex) { ItemIndexData itemIndexData = this.GetItemIndexData(itemIndex); return(itemIndexData == null ? (LoopStaggeredGridViewItem)null : this.GetItemGroupByIndex(itemIndexData.mGroupIndex).GetShownItemByIndexInGroup(itemIndexData.mIndexInGroup)); }