예제 #1
0
 static public void UpdateLayout(LayoutGroup layout)
 {
     layout.CalculateLayoutInputHorizontal();
     layout.SetLayoutHorizontal();
     layout.CalculateLayoutInputVertical();
     layout.SetLayoutVertical();
 }
예제 #2
0
        /// <summary>
        /// Gets the height of the item.
        /// </summary>
        /// <returns>The item height.</returns>
        /// <param name="item">Item.</param>
        float CalculateItemHeight(TItem item)
        {
            if (defaultItemlayoutGroup == null)
            {
                defaultItemlayoutGroup = DefaultItemCopy.GetComponent <LayoutGroup>();
            }

            float height = 0f;

            if ((!IsCanCalculateHeight || ForceAutoHeightCalculation) && (defaultItemlayoutGroup != null))
            {
                DefaultItemCopy.gameObject.SetActive(true);

                SetData(DefaultItemCopy, item);

                defaultItemlayoutGroup.CalculateLayoutInputHorizontal();
                defaultItemlayoutGroup.SetLayoutHorizontal();
                defaultItemlayoutGroup.CalculateLayoutInputVertical();
                defaultItemlayoutGroup.SetLayoutVertical();

                height = LayoutUtility.GetPreferredHeight(DefaultItemCopyRect);

                DefaultItemCopy.gameObject.SetActive(false);
            }
            else
            {
                SetData(DefaultItemCopy, item);

                height = (DefaultItemCopy as IListViewItemHeight).Height;
            }

            return(height);
        }
예제 #3
0
 private void UpdateGrid(LayoutGroup gridLayoutGroup)
 {
     gridLayoutGroup.CalculateLayoutInputHorizontal();
     gridLayoutGroup.CalculateLayoutInputVertical();
     gridLayoutGroup.SetLayoutHorizontal();
     gridLayoutGroup.SetLayoutVertical();
 }
예제 #4
0
 /// <summary>
 /// Updates the layout.
 /// </summary>
 /// <param name="layout">Layout.</param>
 public static void UpdateLayout(LayoutGroup layout)
 {
     if (layout == null)
     {
         return;
     }
     layout.CalculateLayoutInputHorizontal();
     layout.SetLayoutHorizontal();
     layout.CalculateLayoutInputVertical();
     layout.SetLayoutVertical();
 }
예제 #5
0
        private void Awake()
        {
            _layout = GetComponent <LayoutGroup>();


            _layout.CalculateLayoutInputHorizontal();
            _layout.CalculateLayoutInputVertical();

            _filter.SetLayoutHorizontal();
            _filter.SetLayoutVertical();
        }
예제 #6
0
 /// <summary>
 /// Updates the layout.
 /// </summary>
 /// <param name="layout">Layout.</param>
 static public void UpdateLayout(LayoutGroup layout)
 {
     if (layout is EasyLayout.EasyLayout)
     {
         (layout as EasyLayout.EasyLayout).UpdateLayout();
     }
     else
     {
         layout.CalculateLayoutInputHorizontal();
         layout.SetLayoutHorizontal();
         layout.CalculateLayoutInputVertical();
         layout.SetLayoutVertical();
     }
 }
    public static int CalculateLayoutInputHorizontal(IntPtr l)
    {
        int result;

        try
        {
            LayoutGroup layoutGroup = (LayoutGroup)LuaObject.checkSelf(l);
            layoutGroup.CalculateLayoutInputHorizontal();
            LuaObject.pushValue(l, true);
            result = 1;
        }
        catch (Exception e)
        {
            result = LuaObject.error(l, e);
        }
        return(result);
    }
예제 #8
0
    private static int CalculateLayoutInputHorizontal(IntPtr L)
    {
        int result;

        try
        {
            ToLua.CheckArgsCount(L, 1);
            LayoutGroup layoutGroup = (LayoutGroup)ToLua.CheckObject(L, 1, typeof(LayoutGroup));
            layoutGroup.CalculateLayoutInputHorizontal();
            result = 0;
        }
        catch (Exception e)
        {
            result = LuaDLL.toluaL_exception(L, e, null);
        }
        return(result);
    }
예제 #9
0
    private void CheckBounds()
    {
        Vector3[] corners = new Vector3[4];
        parentRect.GetLocalCorners(corners);
        Vector3 screenSize = corners[corners.Length - 1];

        ResetContentPosition(displayRect);

        layout.CalculateLayoutInputHorizontal();
        layout.CalculateLayoutInputVertical();
        LayoutRebuilder.ForceRebuildLayoutImmediate(displayRect);


        float width  = displayRect.sizeDelta.x;
        float height = displayRect.sizeDelta.y;

        RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRect,
                                                                Input.mousePosition,
                                                                null,
                                                                out _tooltipPosition);

        float verticalDiff = Mathf.Abs(screenSize.y - _tooltipPosition.y);

        if (height > verticalDiff)
        {
            displayRect.pivot         = new Vector2(displayRect.pivot.x, 0);
            displayRect.localPosition = Vector3.zero;
        }

        float horizontalDiff = Mathf.Abs(screenSize.x - _tooltipPosition.x);

        if (width > horizontalDiff)
        {
            displayRect.pivot         = new Vector2(1, displayRect.pivot.y);
            displayRect.localPosition = Vector3.zero;
        }
    }
예제 #10
0
		static public void UpdateLayout(LayoutGroup layout)
		{
			layout.CalculateLayoutInputHorizontal();
			layout.SetLayoutHorizontal();
			layout.CalculateLayoutInputVertical();
			layout.SetLayoutVertical();
		}
예제 #11
0
 public void OnEnableUI()
 {
     _layout.CalculateLayoutInputHorizontal();
     _layout.CalculateLayoutInputVertical();
 }