public void OnItemOutDown() { if (firstItemIndex == 0) { //Debug.Log("CLAMP DOWN ?"); return; } firstItemIndex--; //Debug.LogFormat("DOWN dragEndTarget={0} firstIndex={1}", dragEndTarget, firstItemIndex); Transform itemTransform = contentRect.GetChild(ListCount - 1); ObservableComponent item = itemTransform.GetComponent <ObservableComponent>(); item.Info = itemsCollection[firstItemIndex]; layoutGroup.padding.top -= (int)ItemSize; itemTransform.SetAsFirstSibling(); threshold = (firstItemIndex + itemsOut) * ItemSize + internalOffset; }
public void OnItemOutUp() { if (LastItemIndex >= ItemsCount - 1) { //Debug.Log("CLAMP UP ?"); return; } else { firstItemIndex++; //Debug.LogFormat("UP dragEndTarget={0} firstIndex={1}", dragEndTarget, firstItemIndex); Transform itemTransform = contentRect.GetChild(0); ObservableComponent item = itemTransform.GetComponent <ObservableComponent>(); item.Info = itemsCollection[LastItemIndex]; layoutGroup.padding.top += (int)ItemSize; itemTransform.SetAsLastSibling(); threshold = (firstItemIndex + itemsOut) * ItemSize + internalOffset; } }
public virtual void RemoveItemAt(int index) { if (index > ItemsCount - 1) { return; } ItemsCollection.RemoveAt(index); // TODO : THINK ABOUT CHANGING STRATEGY AND MAKING USE OF LayoutGroups ! if (index > firstItemIndex && index < LastItemIndex) { // remove item from screen for (int i = index; i < LastItemIndex && i < contentRect.childCount; i++) { Transform itemTransform = contentRect.GetChild(i); ObservableComponent item = itemTransform.GetComponent <ObservableComponent>(); item.Info = itemsCollection[i]; } } }