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/CompoundControls/SceneFunctionSwitchControl.cs | 207 +++++++++++++++++++++++++++------------------------ 1 files changed, 109 insertions(+), 98 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs index 22daafb..373ca78 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs @@ -5,25 +5,39 @@ namespace Shared.Phone.UserCenter { /// <summary> - /// 鍦烘櫙鍜屽姛鑳戒箣闂寸浉浜掑垏鎹㈢殑Tab鎺т欢(瀹屾垚鍒濆鍖栧悗,浼氭牴鎹粯璁ら�夋嫨璋冪敤鍥炶皟鍑芥暟) + /// <para>鍦烘櫙鍜屽姛鑳戒箣闂寸浉浜掑垏鎹㈢殑Tab鎺т欢(瀹屾垚鍒濆鍖栧悗,浼氭牴鎹粯璁ら�夋嫨璋冪敤鍥炶皟鍑芥暟)</para> + /// <para>2020.03.10鍙樻洿:瀹冨彉鏇翠负鏂囧瓧鍨嬭彍鍗曟帶浠�</para> /// </summary> public class SceneFunctionSwitchControl : FrameLayout { #region 鈻� 鍙橀噺澹版槑___________________________ /// <summary> - /// 閫夋嫨浜嬩欢 1:鍦烘櫙 2:鍔熻兘 + /// 閫夋嫨浜嬩欢(浠�0寮�濮�) /// </summary> public Action<int> SelectTabEvent = null; - private int m_nowSelectIndex = 1; + private int m_nowSelectIndex = 0; /// <summary> - /// 褰撳墠閫夋嫨鐨勫垎鏀� 1锛氬満鏅� 2锛氬姛鑳� + /// 褰撳墠閫夋嫨鐨勫垎鏀�(浠�0寮�濮�) /// </summary> public int nowSelectIndex { get { return m_nowSelectIndex; } } + + /// <summary> + /// 鎵�鏈夊悕瀛楃殑鎺т欢 + /// </summary> + private List<NormalViewControl> listNameControl = new List<NormalViewControl>(); + /// <summary> + /// 鎵�鏈夌嚎鐨勬帶浠� + /// </summary> + private List<NormalViewControl> listLineControl = new List<NormalViewControl>(); + /// <summary> + /// 榛樿鐨勯偅涓彍鍗� + /// </summary> + private FrameLayoutControl frameDefult = null; #endregion @@ -35,113 +49,110 @@ public SceneFunctionSwitchControl() { this.Height = Application.GetRealHeight(90); + this.Y = Application.GetRealHeight(40); } /// <summary> - /// 鍒濆鍖栨帶浠�(浜嬩欢瑕佽嚦浜庡畠涔嬪墠) + /// 鍒濆鍖栨帶浠�(浜嬩欢瑕佽嚦浜庡畠涔嬪墠) /// </summary> - public void InitControl() + /// <param name="listTitleText">鑿滃崟鏂囧瓧鍒楄〃</param> + public void InitControl(List<string> listTitleText) { var btnTemp = new NormalViewControl(10, 10, false); btnTemp.TextSize = 16; - btnTemp.TextID = R.MyInternationalizationString.uScence; - //鍦烘櫙妗�(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�) - var frameScene = new FrameLayoutControl(); - frameScene.UseClickStatu = false; - frameScene.Height = Application.GetRealHeight(90); - frameScene.Width = btnTemp.GetRealWidthByText(); - frameScene.X = ControlCommonResourse.XXLeft; - this.AddChidren(frameScene); - //鍦烘櫙 - var btnScene = new NormalViewControl(frameScene.Width, Application.GetRealHeight(63), false); - btnScene.Text = btnTemp.Text; - btnScene.TextSize = 16; - btnScene.IsBold = true; - btnScene.TextColor = UserCenterColor.Current.TextColor2; - frameScene.AddChidren(btnScene, ChidrenBindMode.BindEventOnly); - //搴曠嚎 - var btnSceneLine = new NormalViewControl(40, 10, true); - btnSceneLine.Y = btnScene.Bottom + Application.GetRealHeight(14); - btnSceneLine.X = btnScene.X + btnScene.Width / 2 - Application.GetRealWidth(40) / 2; - btnSceneLine.Radius = (uint)Application.GetRealHeight(10) / 2; - btnSceneLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor; - frameScene.AddChidren(btnSceneLine, ChidrenBindMode.BindEventOnly); - - btnTemp.TextID = R.MyInternationalizationString.uFunction; - //鍔熻兘妗�(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�) - var frameFunc = new FrameLayoutControl(); - frameFunc.UseClickStatu = false; - frameFunc.Height = Application.GetRealHeight(90); - frameFunc.Width = btnTemp.GetRealWidthByText(); - frameFunc.X = frameScene.Right + Application.GetRealWidth(58); - this.AddChidren(frameFunc); - //鍔熻兘 - var btnFunc = new NormalViewControl(frameFunc.Width, Application.GetRealHeight(63), false); - btnFunc.Text = btnTemp.Text; - btnFunc.TextColor = UserCenterColor.Current.TextGrayColor3; - frameFunc.AddChidren(btnFunc, ChidrenBindMode.BindEventOnly); - //搴曠嚎 - var btnFuncLine = new NormalViewControl(40, 10, true); - btnFuncLine.Y = btnFunc.Bottom + Application.GetRealHeight(14); - btnFuncLine.X = btnFunc.X + btnFunc.Width / 2 - Application.GetRealWidth(40) / 2; - btnFuncLine.Radius = (uint)Application.GetRealHeight(10) / 2; - btnFuncLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor; - frameFunc.AddChidren(btnFuncLine, ChidrenBindMode.BindEventOnly); - btnFuncLine.Visible = false; - - frameScene.ButtonClickEvent += (sender, e) => + //鍋氭垚澶撮儴鑿滃崟鏂囧瓧 + int XX = 0; + for (int i = 0; i < listTitleText.Count; i++) { - //鍦烘櫙鍒嗘敮閫夋嫨 - if (this.m_nowSelectIndex == 1) - { - return; - } - this.m_nowSelectIndex = 1; - - btnScene.TextSize = 16; - btnScene.IsBold = true; - btnScene.TextColor = UserCenterColor.Current.TextColor2; - btnFunc.TextSize = 14; - btnFunc.IsBold = false; - btnFunc.TextColor = UserCenterColor.Current.TextGrayColor3; - btnSceneLine.Visible = true; - btnFuncLine.Visible = false; - - this.SelectTabEvent?.Invoke(1); - }; - - frameFunc.ButtonClickEvent += (sender, e) => - { - //鍔熻兘鍒嗘敮閫夋嫨 - if (this.m_nowSelectIndex == 2) - { - return; - } - this.m_nowSelectIndex = 2; - - btnScene.TextSize = 14; - btnScene.IsBold = false; - btnScene.TextColor = UserCenterColor.Current.TextGrayColor3; - btnFunc.TextSize = 16; - btnFunc.IsBold = true; - btnFunc.TextColor = UserCenterColor.Current.TextColor2; - btnFuncLine.Visible = true; - btnSceneLine.Visible = false; - - this.SelectTabEvent?.Invoke(2); - }; + btnTemp.Text = listTitleText[i]; + //寮�濮嬪垵濮嬪寲 + XX = this.InitTitleTextControl(i, listTitleText[i], btnTemp.GetRealWidthByText(), XX); + } //鍥炶皟鏂规硶 - if (this.m_nowSelectIndex == 1) + this.frameDefult.ButtonClickEvent?.Invoke(null, null); + } + + /// <summary> + /// 鍒濆鍖栨爣棰樻帶浠� + /// </summary> + /// <param name="i_index"></param> + /// <param name="titleText"></param> + private int InitTitleTextControl(int i_index, string titleText, int realWidth, int XX) + { + //鍦烘櫙妗�(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�) + var frameBack = new FrameLayoutControl(); + frameBack.UseClickStatu = false; + frameBack.Height = Application.GetRealHeight(90); + frameBack.Width = realWidth; + frameBack.X = XX + Application.GetRealWidth(58); + this.AddChidren(frameBack); + //鍚嶇О + var btnName = new NormalViewControl(frameBack.Width, Application.GetRealHeight(63), false); + btnName.Text = titleText; + btnName.TextAlignment = TextAlignment.Center; + if (m_nowSelectIndex == i_index) { - this.m_nowSelectIndex = 0; - frameScene.ButtonClickEvent?.Invoke(null, null); + this.frameDefult = frameBack; + //閫夋嫨鐘舵�� + btnName.TextSize = 16; + btnName.IsBold = true; + btnName.TextColor = UserCenterColor.Current.TextColor2; } - if (this.m_nowSelectIndex == 2) + else { - this.m_nowSelectIndex = 0; - frameFunc.ButtonClickEvent?.Invoke(null, null); + btnName.TextColor = UserCenterColor.Current.TextGrayColor3; } + frameBack.AddChidren(btnName, ChidrenBindMode.BindEventOnly); + //娣诲姞缂撳瓨 + this.listNameControl.Add(btnName); + + //搴曠嚎 + var btnLine = new NormalViewControl(40, 10, true); + btnLine.Y = btnName.Bottom + Application.GetRealHeight(14); + btnLine.X = btnName.X + btnName.Width / 2 - Application.GetRealWidth(40) / 2; + btnLine.Radius = (uint)Application.GetRealHeight(10) / 2; + btnLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor; + frameBack.AddChidren(btnLine, ChidrenBindMode.BindEventOnly); + if (m_nowSelectIndex != i_index) + { + btnLine.Visible = false; + } + //娣诲姞缂撳瓨 + this.listLineControl.Add(btnLine); + + frameBack.ButtonClickEvent += (sender, e) => + { + //閫夋嫨鐨勬槸鍚屼竴涓垎鏀�,鍒欐棤鏁� + if (this.m_nowSelectIndex == i_index && e != null) + { + //鎵嬪姩鐐瑰嚮鐨勬墠澶勭悊 + return; + } + this.m_nowSelectIndex = i_index; + //褰撳墠鏂囧瓧鍙樿壊 + btnName.TextSize = 16; + btnName.TextColor = UserCenterColor.Current.TextColor2; + btnName.IsBold = true; + btnLine.Visible = true; + + //杩樺師鍏朵粬鐨勯鑹� + for (int i = 0; i < listNameControl.Count; i++) + { + if (this.m_nowSelectIndex != i) + { + listNameControl[i].TextSize = 14; + listNameControl[i].IsBold = false; + listNameControl[i].TextColor = UserCenterColor.Current.TextGrayColor3; + + listLineControl[i].Visible = false; + } + } + this.SelectTabEvent?.Invoke(i_index); + }; + + //杩斿洖杩欎釜鎺т欢鐨勫彸鍧愭爣 + return frameBack.Right; } #endregion @@ -165,7 +176,7 @@ /// <summary> /// 璁剧疆鍒濆閫夋嫨(璇峰湪鍒濆鍖栧畬鎴愪箣鍓嶈皟鐢�) /// </summary> - /// <param name="index">1锛氬満鏅� 2锛氬姛鑳�</param> + /// <param name="index">浠�0寮�濮�</param> public void SetDefultIndex(int index) { this.m_nowSelectIndex = index; -- Gitblit v1.8.0