From fe3b2466c68b5db70d38e78039703add3b8b1dfe Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 31 十二月 2020 19:29:43 +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