コード例 #1
0
    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);
    }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
    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;
    }
コード例 #4
0
    /// <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);
    }
コード例 #5
0
    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;
        }
    }
コード例 #6
0
    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);
    }
コード例 #7
0
        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);
        }