public void Update(bool updateAll) { int count = mItemSizeGroupList.Count; if (count == 0) { return; } if (mDirtyBeginIndex >= count) { return; } int loopCount = 0; for (int i = mDirtyBeginIndex; i < count; ++i) { loopCount++; ItemSizeGroup tGroup = mItemSizeGroupList[i]; mDirtyBeginIndex++; tGroup.UpdateAllItemStartPos(); if (i == 0) { tGroup.mGroupStartPos = 0; tGroup.mGroupEndPos = tGroup.mGroupSize; } else { tGroup.mGroupStartPos = mItemSizeGroupList[i - 1].mGroupEndPos; tGroup.mGroupEndPos = tGroup.mGroupStartPos + tGroup.mGroupSize; } if (!updateAll && loopCount > 1) { return; } } }