From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs |  180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 180 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs
new file mode 100755
index 0000000..8038b83
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs
@@ -0,0 +1,180 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// 鍋氭垚涓�涓噷闈㈠彧瑁匜rameLayout鐨勫垪琛ㄥ瀷鎺т欢(瀹冧笉浼氳皟鏁撮珮搴�,鏈夋甯�)
+    /// </summary>
+    public class VerticalFrameControl : VerticalScrolViewLayout
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 琛屼箣闂寸殑闂磋窛
+        /// </summary>
+        public int rowSpace = 0;
+        /// <summary>
+        /// 妗屽竷鎺т欢
+        /// </summary>
+        private FrameLayout m_frameTable = null;
+        /// <summary>
+        /// 妗屽竷鎺т欢
+        /// </summary>
+        public FrameLayout frameTable
+        {
+            get
+            {
+                if (m_frameTable == null) { this.InitFrameTable(); }
+                return m_frameTable;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍋氭垚涓�涓垪琛ㄥ瀷鐨凢rameLayout(瀹冧笉浼氳皟鏁撮珮搴�)
+        /// </summary>
+        /// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
+        public VerticalFrameControl(int i_rowSpace = 0)
+        {
+            rowSpace = Application.GetRealHeight(i_rowSpace);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨甯冩帶浠�
+        /// </summary>
+        private void InitFrameTable()
+        {
+            if (this.m_frameTable != null && this.m_frameTable.Parent != null)
+            {
+                return;
+            }
+            this.m_frameTable = new FrameLayout();
+            this.m_frameTable.Width = this.Width;
+            this.m_frameTable.Height = this.Height;
+            this.AddChidren(this.m_frameTable);
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞瀛愭帶浠禵________________________
+
+        /// <summary>
+        /// 娣诲姞Frame瀛愭帶浠�
+        /// </summary>
+        /// <param name="view"></param>
+        public void AddChidrenFrame(FrameLayout frame)
+        {
+            //鍒濆鍖栨甯冩帶浠�
+            this.InitFrameTable();
+
+            var child = this.m_frameTable.GetChildren(this.m_frameTable.ChildrenCount - 1);
+            if (child != null)
+            {
+                frame.Y = child.Bottom + rowSpace;
+            }
+            this.m_frameTable.AddChidren(frame);
+            //璋冩暣妗屽竷楂樺害
+            if (this.m_frameTable.Height < frame.Bottom)
+            {
+                this.m_frameTable.Height = frame.Bottom;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 璋冩暣瀛怓rameLayout鐨勯珮搴�
+        /// </summary>
+        /// <param name="frame"></param>
+        /// <param name="buttomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�)</param>
+        public void AdjustChidrenFrameHeight(FrameLayout frame, int buttomSpace)
+        {
+            //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+            int value = this.GetLocationMostLastViewBottom(frame);
+            if (value != -1)
+            {
+                //璋冩暣妗屽竷楂樺害
+                if (frame.Height < value + buttomSpace)
+                {
+                    frame.Height = value + buttomSpace;
+                }
+            }
+        }
+
+        /// <summary>
+        /// 璋冩暣妗屽竷楂樺害
+        /// </summary>
+        public void AdjustTableHeight()
+        {
+            //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+            int value = this.GetLocationMostLastViewBottom(this.m_frameTable);
+            if (value != -1)
+            {
+                //璋冩暣妗屽竷楂樺害
+                this.m_frameTable.Height = value;
+            }
+        }
+
+        /// <summary>
+        /// 閽堝搴曢儴鐐瑰嚮鎸夐挳,璋冩暣鎺т欢鐪熷疄楂樺害
+        /// </summary>
+        /// <param name="correctionsValue">Y杞磋ˉ姝e��(鐪熷疄鍊�,鍒楄〃鎺т欢涓嶅湪bodyFramelayout鐨勬椂鍊欎娇鐢�)</param>
+        public void AdjustRealHeightByBottomButton(int correctionsValue = 0)
+        {
+            var btnTemp = new BottomClickButton();
+            if (btnTemp.Yaxis >= this.m_frameTable.Height + correctionsValue)
+            {
+                //娌℃湁瓒呰繃
+                return;
+            }
+            //娣诲姞涓存椂鎺т欢,鐩磋嚦鍙互婊戝姩瓒呰繃搴曢儴鎸夐挳
+            int oldRowSpace = this.rowSpace;
+            this.rowSpace = 0;
+            var frameBackTemp = new FrameLayout();
+            frameBackTemp.Height = ControlCommonResourse.BodyFrameHeight - btnTemp.Yaxis + Application.GetRealHeight(23);
+            this.AddChidrenFrame(frameBackTemp);
+            this.rowSpace = oldRowSpace;
+        }
+
+        /// <summary>
+        /// 杩樺師妗屽竷楂樺害
+        /// </summary>
+        public void RecoverTableHeight()
+        {
+            if (this.m_frameTable != null)
+            {
+                m_frameTable.Height = this.Height;
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣
+        /// </summary>
+        /// <returns></returns>
+        private int GetLocationMostLastViewBottom(FrameLayout frame)
+        {
+            int bottomHeight = -1;
+
+            if (frame == null) { return bottomHeight; }
+           
+            for (int i = 0; i < frame.ChildrenCount; i++)
+            {
+                var child = frame.GetChildren(i);
+                if (child.Bottom > bottomHeight)
+                {
+                    bottomHeight = child.Bottom;
+                }
+            }
+            return bottomHeight;
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0