Esempio n. 1
0
    /// <summary>
    /// 创建根文件夹
    /// </summary>
    /// <returns>The root.</returns>
    /// <param name="name">Name.</param>
    /// <param name="parentTrm">Parent trm.</param>
    /// <param name="offx">Offx.</param>
    /// <param name="offy">Offy.</param>
    public static TreeFolder CreateRootFolder(string rootFolderName, RectTransform parentTrm, TreeContainer menuList, float offx, float offy)
    {
        TreeFolder folder = TreeFolder.Create(rootFolderName, parentTrm, menuList);

        folder.ParentFolder = null;
        folder.BeRootFolder = true;
        //设置PosX,PosY
        folder._RectTransform.anchoredPosition = new Vector2(offx - UIEnum.FolderBtnW, offy);
        //根目录去掉+-号显示
        folder.FolderBtn.gameObject.SetActive(false);
        //创建菜单
        folder.CreateMenu(folder);
        return(folder);
    }
Esempio n. 2
0
    /// <summary>
    /// 创建子文件夹
    /// 不需要加入xy偏移量,因为这个偏移量是固定的
    /// </summary>
    /// <param name="name">Name.</param>
    /// <param name="parentTrm">Parent trm.</param>
    public static TreeFolder CreateSubFolder(string folderName, TreeFolder parentFolder, TreeContainer menuList)
    {
        //添加文件夹时,如果父文件夹没有打开,先打开再添加
        if (!parentFolder.BeFolderOpen)
        {
            parentFolder.BeFolderOpen = true;
        }

        var folder = TreeFolder.Create(folderName, parentFolder.SubRootRectTransform, menuList);

        folder.ParentFolder = parentFolder;
        folder.BeRootFolder = false;

        //这里计算的是相对父folder的位置
        //float h = (parentFolder.SubItemNums + 1) * MenuListFolder.FolderH;
        float h = parentFolder.CurFolderH;

        folder._RectTransform.anchoredPosition = new Vector2(UIEnum.FolderBtnW, -h);
        folder.CreateMenu(folder);
        parentFolder.ItemList.Add(folder);

        //新建文件夹后通知上级进行重新排序,比如rootFolder下有10个subFolder,在第二个subFolder下新建,那么后面所有subFolder都要重排
        //这里注意下ui坐标系是左下是0,0所以负值是向下移动
        parentFolder.ParentYOrder(-UIEnum.FolderH, folder.IndexInParentFolder);


        //刷新下MenuList的边框宽,用于刷新MenuList滚动区域,item距离Menulist左边距离+两个图标间隔+4(文字和图标间隔)+w1(文字长度)
        if (!folder.BeRootFolder)
        {
            var   textRt = folder.ItemNameText.gameObject.GetComponent <RectTransform>();
            float w      = Tools.GetStringW(folder.ItemNameText.text, UIEnum.FontSize);
            float w1     = UIEnum.FolderBtnW + UIEnum.FolderImageW + w;
            float _w     = folder.CurItemLeftOffset + UIEnum.ItemImageW * 2 + 4 + w1;
            menuList.SetTreeW(_w);
            menuList.RefreshTreeArea();
        }

        return(folder);
    }