From 7066c7866a6e6faef9c1cbc0793cecf392454baa Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 05 一月 2021 17:50:15 +0800
Subject: [PATCH] 20201-1-5-1
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs | 387 ++++++++++++++++++++++++++++++------------------------
1 files changed, 216 insertions(+), 171 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs
old mode 100755
new mode 100644
index e181c4a..889fa4f
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListRefreshControl.cs
@@ -1,171 +1,216 @@
-锘縰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;
- }
- }
-
- /// <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;
- }
- return;
- }
-
- //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
- var realHeight = count * this.GetChildren(0).Height + bottomSpace;
- if (realHeight < this.Height)
- {
- frameBackTemp?.RemoveFromParent();
- frameBackTemp = null;
- //缂╁皬鎺т欢楂樺害
- this.Height = realHeight;
- }
- 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;
- }
- 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
- }
-}
+锘縰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;
+#if iOS
+ //鑷姩鍋忕Щ鍙栨秷
+ if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
+ {
+ (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never;
+ }
+#endif
+ }
+
+ #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
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鎺т欢绉婚櫎
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ if (this.Parent != null)
+ {
+ base.RemoveFromParent();
+ }
+ }
+
+ /// <summary>
+ /// 鈽嗏槅绉婚櫎鍏ㄩ儴鎺т欢鈽嗏槅
+ /// </summary>
+ public override void RemoveAll()
+ {
+ if (this.Parent != null)
+ {
+ base.RemoveAll();
+ }
+ }
+
+ #endregion
+ }
+}
--
Gitblit v1.8.0