From 9c16d3614d9b88c637f967518a329f239fcd3aaf Mon Sep 17 00:00:00 2001 From: lss <316519258@qq.com> Date: 星期五, 12 六月 2020 09:22:04 +0800 Subject: [PATCH] 2020.06.12 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs | 90 +++++++++++++++++++++++++++++++++++---------- 1 files changed, 70 insertions(+), 20 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs index f2add7e..d307b28 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs @@ -20,7 +20,7 @@ /// </summary> private FrameLayout m_frameTable = null; /// <summary> - /// 妗屽竷鎺т欢 + /// 妗屽竷鎺т欢(杩欎釜涓滆タ涓嶈兘鍒狅紝鍥犱负鏈変簺鐣岄潰闇�瑕佷粬鐨勬甯�) /// </summary> public FrameLayout frameTable { @@ -30,6 +30,11 @@ return m_frameTable; } } + + /// <summary> + /// 涓�涓复鏃剁殑涓滆タ + /// </summary> + private FrameLayout frameBackTemp = null; #endregion @@ -42,6 +47,13 @@ public VerticalFrameControl(int i_rowSpace = 0) { rowSpace = Application.GetRealHeight(i_rowSpace); +#if iOS + //鑷姩鍋忕Щ鍙栨秷 + if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0)) + { + (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never; + } +#endif } /// <summary> @@ -56,7 +68,7 @@ this.m_frameTable = new FrameLayout(); this.m_frameTable.Width = this.Width; this.m_frameTable.Height = this.Height; - this.AddChidren(this.m_frameTable); + base.AddChidren(this.m_frameTable); } #endregion @@ -64,24 +76,25 @@ #region 鈻� 娣诲姞瀛愭帶浠禵________________________ /// <summary> - /// 娣诲姞Frame瀛愭帶浠� + /// 娣诲姞Frame瀛愭帶浠�(娉ㄦ剰,瀹冩槸寰�涓嬪姞鎺т欢,鍙細鏀瑰彉鍧愭爣,妗屽竷澶у皬浼氬鍔�) /// </summary> /// <param name="view"></param> - public void AddChidrenFrame(FrameLayout frame) + public override void AddChidren(View view) { //鍒濆鍖栨甯冩帶浠� this.InitFrameTable(); - var child = this.m_frameTable.GetChildren(this.m_frameTable.ChildrenCount - 1); - if (child != null) + //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣 + int value = this.GetLocationMostLastViewBottom(this.m_frameTable); + if (value != -1) { - frame.Y = child.Bottom + rowSpace; + view.Y = value + rowSpace; } - this.m_frameTable.AddChidren(frame); + this.m_frameTable.AddChidren(view); //璋冩暣妗屽竷楂樺害 - if (this.m_frameTable.Height < frame.Bottom) + if (this.m_frameTable.Height < view.Bottom) { - this.m_frameTable.Height = frame.Bottom; + this.m_frameTable.Height = view.Bottom; } } @@ -90,14 +103,14 @@ #region 鈻� 涓�鑸柟娉昣__________________________ /// <summary> - /// 璋冩暣瀛怓rameLayout鐨勯珮搴� + /// 璋冩暣瀛怓rameLayout鐨勯珮搴�(鍙墿澶�,涓嶇缉灏�) /// </summary> /// <param name="frame"></param> /// <param name="buttomSpace">搴曢儴绌虹櫧闂磋窛(鐪熷疄鍊�)</param> public void AdjustChidrenFrameHeight(FrameLayout frame, int buttomSpace) { //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣 - int value = this.GetLocationMostLastViewBottom(); + int value = this.GetLocationMostLastViewBottom(frame); if (value != -1) { //璋冩暣妗屽竷楂樺害 @@ -109,25 +122,57 @@ } /// <summary> + /// 璋冩暣瀛怓rameLayout鐨勭湡瀹為珮搴� + /// </summary> + /// <param name="frame"></param> + public void AdjustChidrenFrameRealHeight(FrameLayout frame) + { + //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣 + int value = this.GetLocationMostLastViewBottom(frame); + if (value != -1) + { + //璋冩暣妗屽竷楂樺害 + frame.Height = value; + } + } + + /// <summary> /// 璋冩暣妗屽竷楂樺害 /// </summary> public void AdjustTableHeight() { + //2020.05.25杩藉姞 + if (this.frameBackTemp != null && this.frameBackTemp.Parent != null) + { + this.frameBackTemp.RemoveFromParent(); + } + //鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣 - int value = this.GetLocationMostLastViewBottom(); + int value = this.GetLocationMostLastViewBottom(this.m_frameTable); if (value != -1) { //璋冩暣妗屽竷楂樺害 this.m_frameTable.Height = value; + } + else + { + //杩樺師涓哄師鏉ョ殑楂樺害 + this.RecoverTableHeight(); } } /// <summary> /// 閽堝搴曢儴鐐瑰嚮鎸夐挳,璋冩暣鎺т欢鐪熷疄楂樺害 /// </summary> - /// <param name="correctionsValue">Y杞磋ˉ姝e��(鐪熷疄鍊�,鍒楄〃鎺т欢涓嶅湪bodyFramelayout鐨勬椂鍊欎娇鐢�)</param> + /// <param name="correctionsValue"> + /// <para>Y杞磋ˉ姝e��(鐪熷疄鍊�,鍒楄〃鎺т欢涓嶅湪bodyFramelayout鐨勬椂鍊欎娇鐢�)</para> + /// <para>涓�鑸负姝f暟,濡傛灉涓鸿礋鏁颁唬琛╞odyFramelayout瓒呭嚭浜嗛《閮�</para> + /// </param> public void AdjustRealHeightByBottomButton(int correctionsValue = 0) { + //璋冩暣妗屽竷楂樺害 2020.05.25杩藉姞 + this.AdjustTableHeight(); + var btnTemp = new BottomClickButton(); if (btnTemp.Yaxis >= this.m_frameTable.Height + correctionsValue) { @@ -135,9 +180,14 @@ return; } //娣诲姞涓存椂鎺т欢,鐩磋嚦鍙互婊戝姩瓒呰繃搴曢儴鎸夐挳 - var frameBackTemp = new FrameLayout(); + int oldRowSpace = this.rowSpace; + this.rowSpace = 0; + + this.frameBackTemp = new FrameLayout(); frameBackTemp.Height = ControlCommonResourse.BodyFrameHeight - btnTemp.Yaxis + Application.GetRealHeight(23); - this.AddChidrenFrame(frameBackTemp); + this.AddChidren(frameBackTemp); + + this.rowSpace = oldRowSpace; } /// <summary> @@ -155,15 +205,15 @@ /// 鑾峰彇鍧愭爣搴曢儴鏈�涓嬮潰鐨勯偅涓帶浠剁殑搴曢儴鍧愭爣 /// </summary> /// <returns></returns> - private int GetLocationMostLastViewBottom() + private int GetLocationMostLastViewBottom(FrameLayout frame) { int bottomHeight = -1; - if (this.m_frameTable == null) { return bottomHeight; } + if (frame == null) { return bottomHeight; } - for (int i = 0; i < this.m_frameTable.ChildrenCount; i++) + for (int i = 0; i < frame.ChildrenCount; i++) { - var child = this.m_frameTable.GetChildren(i); + var child = frame.GetChildren(i); if (child.Bottom > bottomHeight) { bottomHeight = child.Bottom; -- Gitblit v1.8.0