private void OnQuizItemSelected(ScrollListItem item) { if (OnQuizSelected != null) { OnQuizSelected(this); } }
/// <summary> /// 渲染Item /// </summary> /// <param name="item"></param> /// <param name="data"></param> /// <param name="isRefresh"></param> protected void OnItemRender(ScrollListItem item, object data, bool isRefresh) { if (isRefresh) { var listItem = item.GetComponent <RecyclerViewItem>(); listItem.Refresh(data); } }
private void OnItemRender(ScrollListItem item, object data, bool isRefresh) { if (isRefresh) { var listItem = item.GetComponent <ListItem>(); var listRT = list.scrollRect.GetComponent <RectTransform>(); var content = string.Format("Index:{0}\nData:{1}", item.index, item.data); listItem.Refresh(150 + ((item.index % 15) * 20), listRT.rect.height - 40, content); } }
protected void OnItemRender(ScrollListItem item, object data, bool isRefresh) { if (isRefresh) { var listItem = item.GetComponent <ListItem>(); var listRT = list.scrollRect.GetComponent <RectTransform>(); var content = string.Format("Index:{0} Data:{1}", item.index, item.data); listItem.Refresh(listRT.rect.width - 40, 100 + ((item.index % 15) * 20), content); } //Debug.LogFormat("渲染Item [idx:{0}, value:{1}]", item.index, data); }
private void FindChanges(IList <T> items, out List <ScrollListItem> toAdd, out List <ScrollListItem> toRemove) { toAdd = new List <ScrollListItem>(); toRemove = new List <ScrollListItem>(_items); _items.Clear(); Vector2 pos = new Vector2(0f, -StartPadding); if (items != null) { for (int i = 0; i < items.Count; ++i) { ScrollListItem item = null; foreach (ScrollListItem button in toRemove) { if (button._item.Matches(items[i])) { button._item.SetItem(items[i]); _items.Add(button); toRemove.Remove(button); item = button; break; } } //If no item exists for this create a new one bool newItem = item == null; RectTransform transform; if (newItem) { item = CreatItemType(items[i]); item._lerp = 0.0f; item._state = ScrollListItem.State.FadingIn; item._targetPosition = pos; item._fromPosition = pos; transform = item._item.GetTransform(); transform.anchoredPosition = pos; item._item.SetFade(0.0f); _items.Add(item); toAdd.Add(item); } //Update position and content size else { transform = item._item.GetTransform(); if (item._targetPosition != pos) { item._targetPosition = pos; item._fromPosition = transform.anchoredPosition; item._state = ScrollListItem.State.Moving; item._lerp = 0.0f; item._item.SetFade(1.0f); } } pos.y -= transform.sizeDelta.y + ItemPadding; } } }
private void FindChanges(IList <T> items, out List <ScrollListItem> toAdd, out List <ScrollListItem> toRemove) { toAdd = new List <ScrollListItem>(); toRemove = new List <ScrollListItem>(_items); _items.Clear(); Vector2 pos = new Vector2(0f, -StartPadding); if (items != null) { for (int i = 0; i < items.Count; ++i) { ScrollListItem item = null; foreach (ScrollListItem button in toRemove) { if (button._item.GetData().Equals(items[i])) { _items.Add(button); toRemove.Remove(button); item = button; break; } } RectTransform transform; //If no item exists for this create a new one if (item == null) { GameObject gameObject = _itemPool.Instantiate(_scrollArea.content.transform); item = new ScrollListItem(gameObject.GetComponent <IScrollListItem <T> >()); item._item.OnShow(items[i]); item._lerp = 0.0f; item._state = ScrollListItem.State.FadingIn; item._targetPosition = pos; item._fromPosition = pos; transform = item._item.GetTransform(); transform.anchoredPosition = pos; item._item.SetFade(0.0f); _items.Add(item); toAdd.Add(item); } //Otherwise update existing else { transform = item._item.GetTransform(); if (item._targetPosition != pos) { item._targetPosition = pos; item._fromPosition = transform.anchoredPosition; item._state = ScrollListItem.State.Moving; item._lerp = 0.0f; item._item.SetFade(1.0f); } item._item.OnUpdate(items[i]); } pos.y -= transform.sizeDelta.y + ItemPadding; } } }