public void Init(GameObject obj) { LoopListView.ArrangeType = ArrangeType; m_Content = LoopListView.transform.Find("Viewport/Content"); GameObject insObj = Instantiate(obj); ItemName = insObj.name = "Item"; RectTransform rt = insObj.GetComponent <RectTransform>(); rt.anchorMin = new Vector2(0, 1f); rt.anchorMax = new Vector2(0, 1f); rt.pivot = new Vector2(0, 1); insObj.transform.SetParent(m_Content); insObj.transform.localScale = Vector2.one; ItemPrefabConfData itemData = new ItemPrefabConfData(); itemData.mItemPrefab = insObj; itemData.mPadding = SpacingY; itemData.mInitCreateCount = 0; itemData.mStartPosOffset = SpacingX; List <ItemPrefabConfData> list = new List <ItemPrefabConfData>(); list.Add(itemData); LoopListView.mItemPrefabDataList = list; DataManger = new ScrollViewData(); DataManger.TotalDataCount = TotalCount; DataManger.Init(); LoopListView.InitListView(DataManger.TotalDataCount, OnGetItemByIndex); }
public void Init(ItemPrefabConfData data, RectTransform parent) { m_ItemData = data; mItemParent = parent; for (int i = 0; i < data.mInitCreateCount; ++i) { LoopListViewItem2 tViewItem = CreateItem(); RecycleItemReal(tViewItem); } }
public void Init(List <GameObject> objList) { m_ContentArray[0] = LoopListViewMin.transform.Find("Viewport/Content"); m_ContentArray[1] = LoopListViewMax.transform.Find("Viewport/Content"); LoopListViewMin.ArrangeType = LoopListViewMax.ArrangeType = ArrangeType; ItemNameList = new List <string>(); List <ItemPrefabConfData> list = new List <ItemPrefabConfData>(); for (int i = 0; i < 2; i++) { GameObject insObj = Instantiate(objList.Count > 1? objList[i]: objList[0]); insObj.name = i == 0?"ItemMin":"ItemMax"; ItemNameList.Add(insObj.name); RectTransform rt = insObj.GetComponent <RectTransform>(); rt.anchorMin = new Vector2(0, 1f); rt.anchorMax = new Vector2(0, 1f); rt.pivot = new Vector2(0, 1); insObj.transform.SetParent(m_ContentArray[i]); insObj.transform.localScale = Vector2.one; ItemPrefabConfData itemData = new ItemPrefabConfData(); itemData.mItemPrefab = insObj; itemData.mPadding = SpacingY; itemData.mInitCreateCount = 3; itemData.mStartPosOffset = SpacingX; list.Add(itemData); } List <ItemPrefabConfData> list0 = new List <ItemPrefabConfData>(); list0.Add(list[0]); List <ItemPrefabConfData> list1 = new List <ItemPrefabConfData>(); list1.Add(list[1]); LoopListViewMin.mItemPrefabDataList = list0; LoopListViewMax.mItemPrefabDataList = list1; LoopListViewMin.InitListView(-1, OnGetMinItemByIndex); LoopListViewMax.InitListView(-1, OnGetMaxItemByIndex); LoopListViewMin.mOnSnapNearestChanged = OnMinLevelChanged; LoopListViewMax.mOnSnapNearestChanged = OnMaxLevelChanged; }
/// <summary> 初始化(子类调用) </summary> /// <param name="objList">树item列表(目前最高二级)</param> /// <param name="TreeViewChildItemCountList">一级树列表的每个二级树个数列表 长度对应objList长度</param> /// <param name="childPosXOffset">二级树x轴偏移</param> /// <param name="childPosYOffset">二级树y轴偏移</param> public void Init(List <GameObject> objList, List <int> TreeViewChildItemCountList, int childPosXOffset = 50, int childPosYOffset = 10) { LoopListView.ArrangeType = ArrangeType; m_Content = LoopListView.transform.Find("Viewport/Content"); ItemNameList = new List <string>(); List <ItemPrefabConfData> list = new List <ItemPrefabConfData>(); for (int i = 0; i < objList.Count; i++) { GameObject insObj = Instantiate(objList[i]); insObj.name = "Item_" + (i + 1); ItemNameList.Add(insObj.name); RectTransform rt = insObj.GetComponent <RectTransform>(); rt.anchorMin = new Vector2(0, 1f); rt.anchorMax = new Vector2(1, 1f); rt.pivot = new Vector2(0, 1); insObj.transform.SetParent(m_Content); insObj.transform.localScale = Vector2.one; ItemPrefabConfData itemData = new ItemPrefabConfData(); itemData.mItemPrefab = insObj; itemData.mPadding = i > 0 ? childPosYOffset : SpacingY; itemData.mInitCreateCount = 0; itemData.mStartPosOffset = i > 0 ? childPosXOffset : SpacingX; list.Add(itemData); } LoopListView.mItemPrefabDataList = list; TreeData = new TreeViewData(); TreeData.mTreeViewItemCount = TotalCount; TreeData.mTreeViewChildItemCountList = TreeViewChildItemCountList; TreeData.Init(); for (int i = 0; i < TreeData.mTreeViewItemCount; i++) { int childCount = TreeData.GetItemDataByIndex(i).ChildCount; //int childCount = TreeViewChildItemCountList[i]; TreeItemCountMgr.AddTreeItem(childCount, true); } LoopListView.InitListView(TreeItemCountMgr.GetTotalItemAndChildCount(), OnGetItemByIndex); }
public LoopScrollRect2LoopListView2(LoopListView2 lv, string poolName, int itemCount = 0, UnityAction <int> scrollRectIndexCallback = null) { if (listView == null) { this.poolName = poolName; listView = lv; scrollRect = lv.GetComponent <ScrollRect>(); LoopListViewInitParam initParam = LoopListViewInitParam.CopyDefaultInitParam(); ItemPrefabConfData data = lv.GetFirstItemPrefabConfData(); if (data != null) { Vector2 size = data.mItemPrefab.GetComponent <RectTransform>().sizeDelta; bool isVertList = (lv.ArrangeType == ListItemArrangeType.TopToBottom || lv.ArrangeType == ListItemArrangeType.BottomToTop); initParam.mItemDefaultWithPaddingSize = isVertList ? size.y : size.x; initParam.mItemDefaultWithPaddingSize += data.mPadding; } initParam.mDistanceForNew0 = 100; initParam.mDistanceForNew1 = 100; listView.InitListView(itemCount, OnGetItemByIndex, initParam); this.scrollRectIndexCallBack = scrollRectIndexCallback; } }
public void Init(GameObject obj) { LoopListView.ArrangeType = ArrangeType; m_Content = LoopListView.transform.Find("Viewport/Content"); //滑动列表 Content Rect Rect svRt = m_Content.GetComponent <RectTransform>().rect; ItemName = "Container"; GameObject container = new GameObject(ItemName); //GameObject itemObj = Resources.Load<GameObject>("UIPrefab/Item_01"); GameObject itemObj = obj; Rect itemRect = itemObj.GetComponent <RectTransform>().rect; float height = itemRect.height; RectTransform rt = container.AddComponent <RectTransform>(); rt.sizeDelta = new Vector2(svRt.width, height); row = Mathf.FloorToInt((svRt.width + SpacingX) / (itemRect.width + SpacingX)); for (int i = 0; i < row; i++) { GameObject insObj = Instantiate(itemObj); insObj.transform.SetParent(container.transform); insObj.transform.localScale = Vector2.one; insObj.transform.localPosition = new Vector2(-(svRt.width / 2 - itemRect.width / 2) + i * (itemRect.width + SpacingX), 0); } container.transform.SetParent(m_Content); //container.transform.localPosition = Vector3.zero; container.transform.localScale = Vector3.one; switch (LoopListView.ArrangeType) { case ListItemArrangeType.TopToBottom: case ListItemArrangeType.BottomToTop: rt.anchorMin = new Vector2(0, 1f); rt.anchorMax = new Vector2(0, 1f); rt.pivot = new Vector2(0, 1); break; case ListItemArrangeType.LeftToRight: case ListItemArrangeType.RightToLeft: break; } ItemPrefabConfData itemData = new ItemPrefabConfData(); itemData.mItemPrefab = container; itemData.mPadding = SpacingY; itemData.mInitCreateCount = 0; itemData.mStartPosOffset = SpacingX; List <ItemPrefabConfData> list = new List <ItemPrefabConfData>(); list.Add(itemData); LoopListView.mItemPrefabDataList = list; DataManger = new ScrollViewData(); DataManger.TotalDataCount = TotalCount; int count = DataManger.TotalDataCount / row; if (DataManger.TotalDataCount % row > 0) { count++; } DataManger.Init(); //mLoopListView.InitListView(DataSourceMgr.Get.TotalItemCount, OnGetItemByIndex); LoopListView.InitListView(count, OnGetItemByIndex); }
public override GameObject Render(Renderer renderer) { var go = CreateSelf(renderer); go.AddComponent <CanvasRenderer>(); var scrollView = new GameObject("ScrollView"); scrollView.AddComponent <RectTransform>(); scrollView.transform.SetParent(go.transform); ScrollRect scrollRect = scrollView.AddComponent <ScrollRect>(); scrollView.AddComponent <CanvasRenderer>(); LoopListView2 loopListView2 = scrollView.AddComponent <LoopListView2>(); var scrollViewBg = new GameObject("ScrollViewBg"); RectTransform scrollViewBgRT = scrollViewBg.AddComponent <RectTransform>(); scrollViewBgRT.anchorMin = new Vector2(0, 0); scrollViewBgRT.anchorMax = new Vector2(1, 1); scrollViewBgRT.pivot = new Vector2(.5f, .5f); scrollViewBg.AddComponent <CanvasRenderer>(); Image imgBg = scrollViewBg.AddComponent <Image>(); imgBg.raycastTarget = true; imgBg.maskable = true; imgBg.type = Image.Type.Simple; imgBg.useSpriteMesh = false; imgBg.preserveAspect = false; scrollViewBg.transform.SetParent(scrollView.transform); var Viewport = new GameObject("Viewport"); RectTransform viewportRT = Viewport.AddComponent <RectTransform>(); viewportRT.anchorMin = new Vector2(0, 0); viewportRT.anchorMax = new Vector2(1, 1); viewportRT.pivot = new Vector2(0, 0); Viewport.transform.SetParent(scrollView.transform); Viewport.AddComponent <Mask>().showMaskGraphic = false; Viewport.AddComponent <CanvasRenderer>(); Image image = Viewport.AddComponent <Image>(); image.type = Image.Type.Sliced; image.fillCenter = true; image.pixelsPerUnitMultiplier = 1; image.raycastTarget = true; image.maskable = true; var content = new GameObject("Content"); RectTransform contentRT = content.AddComponent <RectTransform>(); contentRT.anchorMin = new Vector2(0, 1); contentRT.anchorMax = new Vector2(1, 1); contentRT.pivot = new Vector2(0, 1); content.transform.SetParent(Viewport.transform); scrollRect.content = content.GetComponent <RectTransform>(); scrollRect.viewport = Viewport.GetComponent <RectTransform>(); var itemPrefab = new GameObject("ItemPrefab"); RectTransform rectTransform = itemPrefab.AddComponent <RectTransform>(); rectTransform.anchorMin = new Vector2(.5f, 1); rectTransform.anchorMax = new Vector2(.5f, 1); rectTransform.pivot = new Vector2(0.5f, 1f); itemPrefab.transform.SetParent(content.transform); itemPrefab.AddComponent <ListItem2>(); ItemPrefabConfData itemPrefabConfData = new ItemPrefabConfData(); itemPrefabConfData.mItemPrefab = itemPrefab; itemPrefabConfData.mInitCreateCount = 5; itemPrefabConfData.mPadding = 10; loopListView2.ItemPrefabDataList.Add(itemPrefabConfData); loopListView2.ArrangeType = ListItemArrangeType.TopToBottom; //SetupScroll(go, content); // SetMaskImage(renderer, go, content); //var items = CreateItems(renderer, go); //SetupList(go, items, content); SetStretch(go, renderer); SetPivot(go, renderer); return(go); }