From 18a7f9f40e5fab3bee5d4ac3d8fd0273dea052d6 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期日, 26 四月 2020 12:05:28 +0800
Subject: [PATCH] 先上传一个非最新的版本
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs | 89 ++++++++++++++++++++++++++++++++++++++++----
1 files changed, 81 insertions(+), 8 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
index 3d529e1..9d2e43b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
@@ -19,6 +19,25 @@
/// 鏈�澶ч珮搴�
/// </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
@@ -30,7 +49,7 @@
/// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
public VerticalListControl(int i_rowSpace = 0)
{
- rowSpace = Application.GetRealHeight(i_rowSpace);
+ this.rowSpace = Application.GetRealHeight(i_rowSpace);
}
#endregion
@@ -68,6 +87,9 @@
if (this.maxHeight != -1)
{
this.Height = this.maxHeight;
+#if iOS
+ this.ReLocation();
+#endif
}
}
@@ -78,27 +100,78 @@
/// <param name="addSpace">褰撶湡瀹為珮搴﹁秴杩囧師鏈夐珮搴︽椂,鏄惁娣诲姞绌虹櫧</param>
public void AdjustRealHeight(int bottomSpace, bool addSpace = true)
{
- if (this.ChildrenCount == 0)
+ //鎬讳箣,鍏堥噸缃嚦鏈�澶�
+ this.RecoverHeight();
+
+ int count = this.ChildrenCount;
+ if (count <= 0)
{
- //杩樺師涓烘渶澶ч珮搴�
- this.Height = maxHeight;
+ frameBackTemp?.RemoveFromParent();
+ frameBackTemp = null;
return;
}
+
//璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
- var realHeight = this.ChildrenCount * this.GetChildren(0).Height + bottomSpace;
+ 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)
{
- var frameBack = new FrameLayout();
- frameBack.Height = bottomSpace;
- this.AddChidren(frameBack);
+ 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