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