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/VerticalListRefreshControl.cs |  183 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 183 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs
new file mode 100755
index 0000000..25fd9b0
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs
@@ -0,0 +1,183 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// 鍋氭垚涓�涓笂涓嬪彲浠ユ粦鍔ㄧ殑鍒楄〃鎺т欢,鏈夊埛鏂板姛鑳�(瀹冧細璋冩暣楂樺害,鏃犳甯�)
+    /// </summary>
+    public class VerticalListRefreshControl : VerticalRefreshLayout
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 琛屼箣闂寸殑闂磋窛
+        /// </summary>
+        public int rowSpace = 0;
+        /// <summary>
+        /// 鏈�澶ч珮搴�
+        /// </summary>
+        private int maxHeight = -1;
+        /// <summary>
+        /// 涓�涓病浠�涔堢敤鐨勪笢瑗�
+        /// </summary>
+        private FrameLayout frameBackTemp = null;
+        /// <summary>
+        /// 鑷畾涔夌殑鑾峰彇瀛愭帶浠朵釜鏁�
+        /// </summary>
+        public new int ChildrenCount
+        {
+            get
+            {
+                int count = base.ChildrenCount;
+                if (frameBackTemp != null && frameBackTemp.Parent != null)
+                {
+                    count--;
+                }
+                return count < 0 ? 0 : count;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍋氭垚涓�涓笂涓嬪彲浠ユ粦鍔ㄧ殑鍒楄〃鎺т欢,鏈夊埛鏂板姛鑳�(瀹冧細璋冩暣楂樺害,鏃犳甯�)
+        /// </summary>
+        /// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
+        public VerticalListRefreshControl(int i_rowSpace = 0)
+        {
+            this.rowSpace = Application.GetRealHeight(i_rowSpace);
+            this.VerticalScrollBarEnabled = false;
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞瀛愭帶浠禵________________________
+
+        /// <summary>
+        /// 娣诲姞瀛愭帶浠�(FrameRowControl,RowLayoutControl浼氭敼鍙橀珮搴�)
+        /// </summary>
+        /// <param name="view"></param>
+        public override void AddChidren(View view)
+        {
+            base.AddChidren(view);
+            if (view is FrameRowControl || view is RowLayoutControl)
+            {
+                if (rowSpace > 0)
+                {
+                    view.Height += rowSpace;
+                }
+            }
+            if (maxHeight == -1)
+            {
+                maxHeight = this.Height;
+            }
+        }
+        #endregion
+
+        #region 鈻� 璋冩暣鐪熷疄楂樺害_______________________
+
+        /// <summary>
+        /// 杩樺師楂樺害
+        /// </summary>
+        public void RecoverHeight()
+        {
+            if (this.maxHeight != -1)
+            {
+                this.Height = this.maxHeight;
+#if iOS
+                this.ReLocation();
+#endif
+            }
+        }
+
+        /// <summary>
+        /// 璋冩暣鎺т欢鐪熷疄楂樺害(鍙拡瀵硅鎺т欢閮芥槸鐩稿悓楂樺害鐨�,楂樺害鍙細鍑忓皯,涓嶄細澧炲姞)
+        /// </summary>
+        /// <param name="bottomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�)</param>
+        /// <param name="addSpace">褰撶湡瀹為珮搴﹁秴杩囧師鏈夐珮搴︽椂,鏄惁娣诲姞绌虹櫧</param>
+        public void AdjustRealHeight(int bottomSpace, bool addSpace = true)
+        {
+            int count = this.ChildrenCount;
+            if (count <= 0)
+            {
+                frameBackTemp?.RemoveFromParent();
+                frameBackTemp = null;
+                if (maxHeight != -1)
+                {
+                    //杩樺師涓烘渶澶ч珮搴�
+                    this.Height = maxHeight;
+#if iOS
+                    this.ReLocation();
+#endif
+                }
+                return;
+            }
+
+            //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
+            var realHeight = count * this.GetChildren(0).Height + bottomSpace;
+            if (realHeight < this.Height)
+            {
+                frameBackTemp?.RemoveFromParent();
+                frameBackTemp = null;
+                //缂╁皬鎺т欢楂樺害
+                this.Height = realHeight;
+#if iOS
+                this.ReLocation();
+#endif
+            }
+            else if (addSpace == true && bottomSpace > 0 && realHeight > this.maxHeight)
+            {
+                frameBackTemp?.RemoveFromParent();
+
+                frameBackTemp = new FrameLayout();
+                frameBackTemp.Height = bottomSpace;
+                this.AddChidren(frameBackTemp);
+            }
+        }
+
+        /// <summary>
+        /// 閽堝搴曢儴鐐瑰嚮鎸夐挳,璋冩暣鎺т欢鐪熷疄楂樺害
+        /// </summary>
+        /// <param name="bottomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�,濡傛灉鍒楄〃鎺т欢鐪熷疄楂樺害娌℃湁瓒呰繃鏃�,浣跨敤姝ゅ��)</param>
+        /// <param name="correctionsValue">Y杞磋ˉ姝e��(鐪熷疄鍊�,鍒楄〃鎺т欢涓嶅湪bodyFramelayout鐨勬椂鍊欎娇鐢�)</param>
+        public void AdjustRealHeightByBottomButton(int bottomSpace, int correctionsValue = 0)
+        {
+            if (this.ChildrenCount == 0)
+            {
+                frameBackTemp?.RemoveFromParent();
+                frameBackTemp = null;
+                if (maxHeight != -1)
+                {
+                    //杩樺師涓烘渶澶ч珮搴�
+                    this.Height = maxHeight;
+#if iOS
+                    this.ReLocation();
+#endif
+                }
+                return;
+            }
+            var realHeight = this.ChildrenCount * this.GetChildren(0).Height + this.Y + correctionsValue;
+            var btnTemp = new BottomClickButton();
+            if (btnTemp.Yaxis >= realHeight)
+            {
+                //娌℃湁瓒呰繃
+                this.AdjustRealHeight(bottomSpace);
+                return;
+            }
+            //瓒呰繃鏃�,閲嶇疆鑷虫渶澶�
+            this.RecoverHeight();
+
+            //娣诲姞涓存椂鎺т欢,鐩磋嚦鍙互婊戝姩瓒呰繃搴曢儴鎸夐挳
+            frameBackTemp?.RemoveFromParent();
+            frameBackTemp = new FrameLayout();
+            frameBackTemp.Height = ControlCommonResourse.BodyFrameHeight - btnTemp.Yaxis + bottomSpace;
+            this.AddChidren(frameBackTemp);
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0