LoopStaggeredGridViewItem OnGetItemByIndex(LoopStaggeredGridView listView, int index) { if (index < 0) { return(null); } ItemData itemData = DataSourceMgr.Get.GetItemDataByIndex(index); if (itemData == null) { return(null); } LoopStaggeredGridViewItem item = listView.NewListViewItem("ItemPrefab1"); ListItem5 itemScript = item.GetComponent <ListItem5>(); if (item.IsInitHandlerCalled == false) { item.IsInitHandlerCalled = true; itemScript.Init(); } itemScript.SetItemData(itemData, index); float itemWidth = 390 + mItemWidthArrayForDemo[index % mItemWidthArrayForDemo.Length] * 10f; item.CachedRectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, itemWidth); return(item); }
private LoopStaggeredGridViewItem OnGetItemByIndex( LoopStaggeredGridView listView, int index) { if (index < 0) { return((LoopStaggeredGridViewItem)null); } ItemData itemDataByIndex = DataSourceMgr.Get.GetItemDataByIndex(index); if (itemDataByIndex == null) { return((LoopStaggeredGridViewItem)null); } LoopStaggeredGridViewItem staggeredGridViewItem = listView.NewListViewItem("ItemPrefab0"); ListItem5 component = (ListItem5)((Component)staggeredGridViewItem).GetComponent <ListItem5>(); if (!staggeredGridViewItem.IsInitHandlerCalled) { staggeredGridViewItem.IsInitHandlerCalled = true; component.Init(); } component.SetItemData(itemDataByIndex, index); float num = (float)(300.0 + (double)this.mItemHeightArrayForDemo[index % this.mItemHeightArrayForDemo.Length] * 10.0); staggeredGridViewItem.CachedRectTransform.SetSizeWithCurrentAnchors((RectTransform.Axis) 1, num); return(staggeredGridViewItem); }
void ShowItemPrefabDataList(LoopStaggeredGridView listView) { EditorGUILayout.PropertyField(mItemPrefabDataList, mItemPrefabListContent); if (mItemPrefabDataList.isExpanded == false) { return; } EditorGUI.indentLevel += 1; if (GUILayout.Button("Add New")) { mItemPrefabDataList.InsertArrayElementAtIndex(mItemPrefabDataList.arraySize); if (mItemPrefabDataList.arraySize > 0) { SerializedProperty itemData = mItemPrefabDataList.GetArrayElementAtIndex(mItemPrefabDataList.arraySize - 1); SerializedProperty mItemPrefab = itemData.FindPropertyRelative("mItemPrefab"); mItemPrefab.objectReferenceValue = null; } } int removeIndex = -1; EditorGUILayout.PropertyField(mItemPrefabDataList.FindPropertyRelative("Array.size")); for (int i = 0; i < mItemPrefabDataList.arraySize; i++) { SerializedProperty itemData = mItemPrefabDataList.GetArrayElementAtIndex(i); SerializedProperty mInitCreateCount = itemData.FindPropertyRelative("mInitCreateCount"); SerializedProperty mItemPrefab = itemData.FindPropertyRelative("mItemPrefab"); SerializedProperty mItemPrefabPadding = itemData.FindPropertyRelative("mPadding"); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PropertyField(itemData); if (GUILayout.Button("Remove")) { removeIndex = i; } EditorGUILayout.EndHorizontal(); if (itemData.isExpanded == false) { continue; } mItemPrefab.objectReferenceValue = EditorGUILayout.ObjectField("ItemPrefab", mItemPrefab.objectReferenceValue, typeof(GameObject), true); mItemPrefabPadding.floatValue = EditorGUILayout.FloatField("ItemPadding", mItemPrefabPadding.floatValue); mInitCreateCount.intValue = EditorGUILayout.IntField("InitCreateCount", mInitCreateCount.intValue); EditorGUILayout.Space(); EditorGUILayout.Space(); } if (removeIndex >= 0) { mItemPrefabDataList.DeleteArrayElementAtIndex(removeIndex); } EditorGUI.indentLevel -= 1; }
public override void OnInspectorGUI() { serializedObject.Update(); LoopStaggeredGridView tListView = serializedObject.targetObject as LoopStaggeredGridView; if (tListView == null) { return; } ShowItemPrefabDataList(tListView); EditorGUILayout.Space(); EditorGUILayout.PropertyField(mArrangeType, mArrangeTypeGuiContent); serializedObject.ApplyModifiedProperties(); }