From adb12dcdbb2ddaeac687c3aa9e57bb7ed459ab7e Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 24 六月 2020 15:26:46 +0800
Subject: [PATCH] 2020.06.24.01

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs |   60 +++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 43 insertions(+), 17 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs
index 484e815..d02b8e4 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs
@@ -8,7 +8,7 @@
     /// <para>鍦烘櫙鍜屽姛鑳戒箣闂寸浉浜掑垏鎹㈢殑Tab鎺т欢(瀹屾垚鍒濆鍖栧悗,浼氭牴鎹粯璁ら�夋嫨璋冪敤鍥炶皟鍑芥暟)</para>
     /// <para>2020.03.10鍙樻洿:瀹冨彉鏇翠负鏂囧瓧鍨嬭彍鍗曟帶浠�</para>
     /// </summary>
-    public class SceneFunctionSwitchControl : FrameLayout
+    public class SceneFunctionSwitchControl : HorizontalScrolViewLayout
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
@@ -16,6 +16,10 @@
         /// 閫夋嫨浜嬩欢(浠�0寮�濮�)
         /// </summary>
         public Action<int> SelectTabEvent = null;
+        /// <summary>
+        /// 鍓嶅洖閫夋嫨鐨勭储寮�
+        /// </summary>
+        public int OldSelectIndex = 0;
 
         private int m_nowSelectIndex = 0;
         /// <summary>
@@ -49,43 +53,57 @@
         public SceneFunctionSwitchControl()
         {
             this.Height = Application.GetRealHeight(90);
-            this.Y = Application.GetRealHeight(40);
         }
 
         /// <summary>
         ///  鍒濆鍖栨帶浠�(浜嬩欢瑕佽嚦浜庡畠涔嬪墠)
         /// </summary>
         /// <param name="listTitleText">鑿滃崟鏂囧瓧鍒楄〃</param>
-        public void InitControl(List<string> listTitleText)
+        /// <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;
 
             //鍋氭垚澶撮儴鑿滃崟鏂囧瓧
-            int XX = 0;
             for (int i = 0; i < listTitleText.Count; i++)
             {
                 btnTemp.Text = listTitleText[i];
-                //寮�濮嬪垵濮嬪寲
-                XX = this.InitTitleTextControl(i, listTitleText[i], btnTemp.GetRealWidthByText(), XX);
+                //娣诲姞鏍囬鎺т欢
+                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 int InitTitleTextControl(int i_index, string titleText, int realWidth, int XX)
+        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.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);
@@ -103,17 +121,17 @@
             {
                 btnName.TextColor = UserCenterColor.Current.TextGrayColor3;
             }
-            frameBack.AddChidren(btnName, ChidrenBindMode.BindEventOnly);
+            frameBack.AddChidren(btnName, ChidrenBindMode.BindEvent);
             //娣诲姞缂撳瓨
             this.listNameControl.Add(btnName);
 
             //搴曠嚎
             var btnLine = new NormalViewControl(40, 10, true);
-            btnLine.Y = btnName.Bottom + Application.GetRealHeight(14);
+            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.BindEventOnly);
+            frameBack.AddChidren(btnLine, ChidrenBindMode.BindEvent);
             if (m_nowSelectIndex != i_index)
             {
                 btnLine.Visible = false;
@@ -129,6 +147,7 @@
                     //鎵嬪姩鐐瑰嚮鐨勬墠澶勭悊
                     return;
                 }
+                this.OldSelectIndex = this.m_nowSelectIndex;
                 this.m_nowSelectIndex = i_index;
                 //褰撳墠鏂囧瓧鍙樿壊
                 btnName.TextSize = 16;
@@ -150,9 +169,6 @@
                 }
                 this.SelectTabEvent?.Invoke(i_index);
             };
-
-            //杩斿洖杩欎釜鎺т欢鐨勫彸鍧愭爣
-            return frameBack.Right;
         }
 
         #endregion
@@ -174,11 +190,21 @@
         #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;
         }
 

--
Gitblit v1.8.0