From dc0309e64f02227d8e1468b7326c07955f804612 Mon Sep 17 00:00:00 2001 From: chenqiyang <1406175257@qq.com> Date: 星期三, 22 六月 2022 11:22:18 +0800 Subject: [PATCH] 修改引用路径 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs | 226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 226 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs new file mode 100644 index 0000000..b17e67e --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs @@ -0,0 +1,226 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Phone.UserCenter +{ + /// <summary> + /// <para>鍦烘櫙鍜屽姛鑳戒箣闂寸浉浜掑垏鎹㈢殑Tab鎺т欢(瀹屾垚鍒濆鍖栧悗,浼氭牴鎹粯璁ら�夋嫨璋冪敤鍥炶皟鍑芥暟)</para> + /// <para>2020.03.10鍙樻洿:瀹冨彉鏇翠负鏂囧瓧鍨嬭彍鍗曟帶浠�</para> + /// </summary> + public class SceneFunctionSwitchControl : HorizontalScrolViewLayout + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 閫夋嫨浜嬩欢(浠�0寮�濮�) + /// </summary> + public Action<int> SelectTabEvent = null; + /// <summary> + /// 鍓嶅洖閫夋嫨鐨勭储寮� + /// </summary> + public int OldSelectIndex = 0; + + private int m_nowSelectIndex = 0; + /// <summary> + /// 褰撳墠閫夋嫨鐨勫垎鏀�(浠�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 FrameLayoutStatuControl frameDefult = null; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鍦烘櫙鍜屽姛鑳戒箣闂寸浉浜掑垏鎹㈢殑Tab鎺т欢(瀹屾垚鍒濆鍖栧悗,浼氭牴鎹粯璁ら�夋嫨璋冪敤鍥炶皟鍑芥暟) + /// </summary> + public SceneFunctionSwitchControl() + { + this.Height = Application.GetRealHeight(90); + } + + /// <summary> + /// 鍒濆鍖栨帶浠�(浜嬩欢瑕佽嚦浜庡畠涔嬪墠) + /// </summary> + /// <param name="listTitleText">鑿滃崟鏂囧瓧鍒楄〃</param> + /// <param name="rightSpace">鍙宠竟绌虹櫧瀹藉害</param> + public void InitControl(List<string> listTitleText, int rightSpace = 0) + { + if (listTitleText.Count == 0) { return; } + this.listNameControl.Clear(); + this.listLineControl.Clear(); + + var btnTemp = new NormalViewControl(10, 10, false); + btnTemp.TextSize = 16; + + //鍋氭垚澶撮儴鑿滃崟鏂囧瓧 + for (int i = 0; i < listTitleText.Count; i++) + { + btnTemp.Text = listTitleText[i]; + //娣诲姞鏍囬鎺т欢 + this.AddTitleTextControl(i, listTitleText[i], btnTemp.GetRealWidthByText()); + } + //娣诲姞鍙宠竟绌虹櫧瀹藉害 + if (rightSpace > 0) + { + //娣诲姞涓�涓棿闅旈棿璺� + var frameSpace = new FrameLayout(); + frameSpace.Width = Application.GetRealWidth(rightSpace); + this.AddChidren(frameSpace); + } + //鍥炶皟鏂规硶 + this.frameDefult.ButtonClickEvent?.Invoke(null, null); + } + + /// <summary> + /// 娣诲姞鏍囬鎺т欢 + /// </summary> + /// <param name="i_index"></param> + /// <param name="titleText"></param> + private void AddTitleTextControl(int i_index, string titleText, int realWidth) + { + //娣诲姞涓�涓棿闅旈棿璺� + var frameSpace = new FrameLayout(); + frameSpace.Width = Application.GetRealWidth(58); + this.AddChidren(frameSpace); + + //鍦烘櫙妗�(鐐瑰嚮鑼冨洿鏈夌偣灏忥紝闇�瑕佹墿澶у畠鐨勭偣鍑昏寖鍥�) + var frameBack = new FrameLayoutStatuControl(); + frameBack.UseClickStatu = false; + frameBack.Width = realWidth; + 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.frameDefult = frameBack; + //閫夋嫨鐘舵�� + btnName.TextSize = 16; + btnName.IsBold = true; + btnName.TextColor = UserCenterColor.Current.TextColor2; + } + else + { + btnName.TextColor = UserCenterColor.Current.TextGrayColor3; + } + frameBack.AddChidren(btnName, ChidrenBindMode.BindEvent); + //娣诲姞缂撳瓨 + this.listNameControl.Add(btnName); + + //搴曠嚎 + var btnLine = new NormalViewControl(40, 10, true); + btnLine.Y = btnName.Bottom + Application.GetRealHeight(6); + 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.BindEvent); + 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.OldSelectIndex = this.m_nowSelectIndex; + 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); + }; + } + + #endregion + + #region 鈻� 鎺т欢鎽ф瘉___________________________ + + /// <summary> + /// 鎺т欢鎽ф瘉 + /// </summary> + public override void RemoveFromParent() + { + this.SelectTabEvent = null; + if (this.Parent != null) + { + base.RemoveFromParent(); + } + } + + /// <summary> + /// 鈽嗏槅绉婚櫎鍏ㄩ儴鎺т欢鈽嗏槅 + /// </summary> + public override void RemoveAll() + { + if (this.Parent != null) + { + base.RemoveAll(); + } + } + + #endregion + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 璁剧疆鍒濆閫夋嫨 + /// </summary> + /// <param name="index">浠�0寮�濮�</param> + public void SetDefultIndex(int index) + { + if (frameDefult != null && frameDefult.Parent != null) + { + if (index < this.listNameControl.Count) + { + this.ScrollToViewIndex(index * 2 + 1); + //璋冪敤鐐瑰嚮浜嬩欢 + this.listNameControl[index].ButtonClickEvent(null, null); + } + return; + } + this.m_nowSelectIndex = index; + } + + #endregion + } +} -- Gitblit v1.8.0