From 34b65350abbb8b740b9c3bc0b43254cbbe23fcb5 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 19 五月 2020 09:31:44 +0800
Subject: [PATCH] 合并代码,更改面板目标信息
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs | 391 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 391 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs
new file mode 100755
index 0000000..2b18246
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs
@@ -0,0 +1,391 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter
+{
+ /// <summary>
+ /// 鎴块棿缁勫悎鎴栬�呰澶囩粍鍚堢殑鑿滃崟鎺т欢(瀹屾垚鍒濆鍖栧悗,浼氭牴鎹粯璁ら�夋嫨璋冪敤鍥炶皟鍑芥暟)
+ /// </summary>
+ public class RoomDeviceGroupMenuControl : FrameLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鎴块棿閫夋嫨浜嬩欢
+ /// </summary>
+ public Action<Common.Room> SelectRoomEvent = null;
+ /// <summary>
+ /// 璁惧閫夋嫨浜嬩欢
+ /// </summary>
+ public Action<List<CommonDevice>> SelectDeviceEvent = null;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勪富閿�(鎴块棿绫诲瀷鏃讹細鎴块棿ID 璁惧绫诲瀷鏃讹細R鏂囦欢閲岄潰鐨処D)
+ /// </summary>
+ public string nowSelectKeys
+ {
+ get
+ {
+ if (dicDevice != null)
+ {
+ int index = 0;
+ foreach (var rId in dicDevice.Keys)
+ {
+ if (index == oldSelectIndex)
+ {
+ return rId.ToString();
+ }
+ }
+ return string.Empty;
+ }
+ return listRoom[oldSelectIndex].Id;
+ }
+ }
+
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勭储寮�(鍐呴儴浣跨敤)
+ /// </summary>
+ private int oldSelectIndex = -1;
+ /// <summary>
+ /// 鎴块棿瀵硅薄
+ /// </summary>
+ private List<Common.Room> listRoom = null;
+ /// <summary>
+ /// 璁惧瀵硅薄
+ /// </summary>
+ private Dictionary<int, List<CommonDevice>> dicDevice = null;
+ /// <summary>
+ /// 鍓嶅洖閫夋嫨鐨勬帶浠�
+ /// </summary>
+ private FrameLayoutStatuControl oldFrameBack = null;
+ /// <summary>
+ /// 鍓嶅洖閫夋嫨鐨勬帶浠�
+ /// </summary>
+ private NormalViewControl oldBtnText = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鎴块棿缁勫悎鐨勮彍鍗曟帶浠�(瀹屾垚鍒濆鍖栧悗,浼氭牴鎹粯璁ら�夋嫨璋冪敤鍥炶皟鍑芥暟)
+ /// </summary>
+ /// <param name="i_listRoom">鎴块棿鍒楄〃</param>
+ public RoomDeviceGroupMenuControl(List<Common.Room> i_listRoom)
+ {
+ this.listRoom = i_listRoom;
+ this.Height = Application.GetRealHeight(204);
+ }
+
+ /// <summary>
+ /// 璁惧缁勫悎鐨勮彍鍗曟帶浠�
+ /// </summary>
+ /// <param name="i_dicDevice">璁惧鍒楄〃,keys:R鏂囦欢閲岄潰鐨勬暟瀛楃紪鍙�</param>
+ public RoomDeviceGroupMenuControl(Dictionary<int, List<CommonDevice>> i_dicDevice)
+ {
+ this.dicDevice = i_dicDevice;
+ this.Height = Application.GetRealHeight(204);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�(浜嬩欢瑕佽嚦浜庡畠涔嬪墠)
+ /// </summary>
+ public void InitControl()
+ {
+ var scrolContr = new HorizontalScrolViewLayout();
+ scrolContr.Gravity = Gravity.CenterVertical;
+ scrolContr.Height = this.Height;
+ this.AddChidren(scrolContr);
+
+ //寮勪釜绌虹殑杩涘幓鍗犱綅缃�
+ var frameTemp = new FrameLayout();
+ frameTemp.Height = this.Height;
+ frameTemp.Width = ControlCommonResourse.XXLeft / 2;
+ scrolContr.AddChidren(frameTemp);
+
+ var btnTempWidth = new ButtonBase();
+ btnTempWidth.TextSize = 12;
+ if (this.listRoom != null)
+ {
+ //鍒濆鍖栨埧闂存ā寮忕殑鎺т欢
+ for (int i = 0; i < listRoom.Count; i++)
+ {
+ if (oldSelectIndex == -1)
+ {
+ //鍒濆鍊�
+ oldSelectIndex = i;
+ }
+
+ //璁$畻瀛楃鐨勭湡瀹炲搴�
+ btnTempWidth.Text = listRoom[i].Name;
+ this.DoInitControl(scrolContr, i, i, listRoom[i].Name, btnTempWidth.GetRealWidthByText());
+ }
+ }
+ else
+ {
+ //鍒濆鍖栬澶囨ā寮忕殑鎺т欢
+ int index = 0;
+ foreach (int keys in dicDevice.Keys)
+ {
+ if (oldSelectIndex == -1)
+ {
+ //鍒濆鍊�
+ oldSelectIndex = index;
+ }
+ //璁$畻瀛楃鐨勭湡瀹炲搴�
+ btnTempWidth.Text = Language.StringByID(keys);
+ this.DoInitControl(scrolContr, keys, index, btnTempWidth.Text, btnTempWidth.GetRealWidthByText());
+ index++;
+ }
+ }
+ //璁╂帶浠舵粦鍔ㄥ埌鎸囧畾鐨勭储寮曚綅缃�
+ scrolContr.ScrollToViewIndex(oldSelectIndex + 1);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ /// <param name="scrolContr">鍒楄〃鎺т欢</param>
+ /// <param name="keys">瀛楀吀鐨勪富閿�</param>
+ /// <param name="index">绱㈠紩</param>
+ /// <param name="text">鏄剧ず鏂囨湰</param>
+ /// <param name="textWidth">鏂囨湰鐪熷疄瀹藉害</param>
+ private void DoInitControl(HorizontalScrolViewLayout scrolContr, int keys, int index, string text, int textWidth)
+ {
+ //甯﹀簳鍥炬帶浠剁殑鏈�灏忓搴�
+ int minWidth = Application.GetRealWidth(255);
+ //甯﹀簳鍥炬帶浠剁殑鐪熷疄瀹藉害 <鏂囧瓧鐨勫搴︾殑璁$畻 frameBack.Width - (int)(frameBack.Height * 0.47)>
+ int realWidth = textWidth + (int)(Application.GetRealHeight(159) * 0.47);
+ if (realWidth < minWidth)
+ {
+ realWidth = minWidth;
+ }
+
+ //甯﹀浘鐗囩殑
+ var frameBack = new FrameLayoutStatuControl();
+ frameBack.UseClickStatu = false;
+ frameBack.Gravity = Gravity.Center;
+ frameBack.Height = Application.GetRealHeight(159);
+ frameBack.Width = realWidth;
+ if (oldSelectIndex == index)
+ {
+ frameBack.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
+ oldFrameBack = frameBack;
+ }
+ else
+ {
+ frameBack.BackgroundImagePath = "Item/RoomIconBackground.png";
+ }
+ scrolContr.AddChidren(frameBack);
+ //鏂囧瓧
+ var btnText = new NormalViewControl(textWidth, frameBack.Height, false);
+ btnText.Gravity = Gravity.CenterHorizontal;
+ btnText.Text = text;
+ btnText.TextSize = 12;
+ btnText.TextAlignment = TextAlignment.Center;
+ if (oldSelectIndex == index)
+ {
+ btnText.TextColor = UserCenterColor.Current.White;
+ oldBtnText = btnText;
+ }
+ else
+ {
+ btnText.TextColor = UserCenterColor.Current.TextGrayColor1;
+ }
+ frameBack.AddChidren(btnText, ChidrenBindMode.BindEventOnly);
+
+ frameBack.ButtonClickEvent += (sender, e) =>
+ {
+ if (oldSelectIndex == index)
+ {
+ //鍚屼竴涓笢瑗�
+ return;
+ }
+ oldSelectIndex = index;
+
+ //鐘舵�佸彉鏇�
+ frameBack.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
+ btnText.TextColor = UserCenterColor.Current.White;
+
+ oldFrameBack.BackgroundImagePath = "Item/RoomIconBackground.png";
+ oldBtnText.TextColor = UserCenterColor.Current.TextGrayColor1;
+ oldFrameBack = frameBack;
+ oldBtnText = btnText;
+ //璋冪敤鍥炶皟鍑芥暟
+ if (this.dicDevice != null)
+ {
+ this.SelectDeviceEvent?.Invoke(this.dicDevice[keys]);
+ }
+ else if (this.listRoom != null)
+ {
+ this.SelectRoomEvent?.Invoke(this.listRoom[keys]);
+ }
+ };
+
+ //璋冪敤鍥炶皟鍑芥暟
+ if (oldSelectIndex == index)
+ {
+ if (this.dicDevice != null)
+ {
+ this.SelectDeviceEvent?.Invoke(this.dicDevice[keys]);
+ }
+ else if (this.listRoom != null)
+ {
+ this.SelectRoomEvent?.Invoke(this.listRoom[keys]);
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠�
+ /// </summary>
+ /// <param name="scrolContr">鍒楄〃鎺т欢</param>
+ /// <param name="keys">瀛楀吀鐨勪富閿�</param>
+ /// <param name="index">绱㈠紩</param>
+ /// <param name="text">鏄剧ず鏂囨湰</param>
+ /// <param name="textWidth">鏂囨湰鐪熷疄瀹藉害</param>
+ private void DoInitControl2(HorizontalScrolViewLayout scrolContr, int keys, int index, string text, int textWidth)
+ {
+ //甯﹀簳鍥炬帶浠剁殑鏈�灏忓搴�
+ int minWidth = Application.GetRealWidth(255);
+ //甯﹀簳鍥炬帶浠剁殑鐪熷疄瀹藉害 <鏂囧瓧鐨勫搴︾殑璁$畻 frameBack.Width - (int)(frameBack.Height * 0.47)>
+ int realWidth = textWidth + (int)(Application.GetRealHeight(159) * 0.47);
+ if (realWidth < minWidth)
+ {
+ realWidth = minWidth;
+ }
+
+ //甯﹀浘鐗囩殑
+ var frameBack = new FrameLayoutStatuControl();
+ frameBack.UseClickStatu = false;
+ frameBack.Gravity = Gravity.Center;
+ frameBack.Height = Application.GetRealHeight(159);
+ frameBack.Width = realWidth;
+ frameBack.BorderWidth = 1;
+ frameBack.BorderColor = UserCenterColor.Current.TextColor1;
+ scrolContr.AddChidren(frameBack);
+ if (oldSelectIndex == index)
+ {
+ frameBack.SetViewShadow(true);
+ frameBack.BackgroundColor = UserCenterColor.Current.TextColor1;
+ oldFrameBack = frameBack;
+ }
+
+ //鏂囧瓧
+ var btnText = new NormalViewControl(textWidth, frameBack.Height, false);
+ btnText.Gravity = Gravity.CenterHorizontal;
+ btnText.Text = text;
+ btnText.TextSize = 12;
+ btnText.TextAlignment = TextAlignment.Center;
+ if (oldSelectIndex == index)
+ {
+ btnText.TextColor = UserCenterColor.Current.White;
+ oldBtnText = btnText;
+ }
+ else
+ {
+ btnText.TextColor = UserCenterColor.Current.TextGrayColor1;
+ }
+ frameBack.AddChidren(btnText, ChidrenBindMode.BindEventOnly);
+
+ frameBack.ButtonClickEvent += (sender, e) =>
+ {
+ if (oldSelectIndex == index)
+ {
+ //鍚屼竴涓笢瑗�
+ return;
+ }
+ oldSelectIndex = index;
+
+ //鐘舵�佸彉鏇�
+ frameBack.SetViewShadow(true);
+ frameBack.BackgroundColor = UserCenterColor.Current.TextColor1;
+ btnText.TextColor = UserCenterColor.Current.White;
+
+ oldFrameBack.SetViewShadow(false);
+ oldFrameBack.BackgroundColor = UserCenterColor.Current.Transparent;
+ oldBtnText.TextColor = UserCenterColor.Current.TextGrayColor1;
+ oldFrameBack = frameBack;
+ oldBtnText = btnText;
+ //璋冪敤鍥炶皟鍑芥暟
+ if (this.dicDevice != null)
+ {
+ this.SelectDeviceEvent?.Invoke(this.dicDevice[keys]);
+ }
+ else if (this.listRoom != null)
+ {
+ this.SelectRoomEvent?.Invoke(this.listRoom[keys]);
+ }
+ };
+
+ //璋冪敤鍥炶皟鍑芥暟
+ if (oldSelectIndex == index)
+ {
+ if (this.dicDevice != null)
+ {
+ this.SelectDeviceEvent?.Invoke(this.dicDevice[keys]);
+ }
+ else if (this.listRoom != null)
+ {
+ this.SelectRoomEvent?.Invoke(this.listRoom[keys]);
+ }
+ }
+ }
+
+
+ #endregion
+
+ #region 鈻� 鎺т欢鎽ф瘉___________________________
+
+ /// <summary>
+ /// 鎺т欢鎽ф瘉
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ this.SelectDeviceEvent = null;
+ this.SelectRoomEvent = null;
+
+ base.RemoveFromParent();
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 璁剧疆鍒濆閫夋嫨(璇峰湪鍒濆鍖栧畬鎴愪箣鍓嶈皟鐢�)
+ /// </summary>
+ /// <param name="keys">鎴块棿ID 鎴栬�� R鏂囦欢閲岄潰鐨勬暟鍊肩紪鍙�(杞负瀛楃涓茬被鍨�)</param>
+ public void SetDefultIndex(string keys)
+ {
+ if (listRoom != null)
+ {
+ for (int index = 0; index < listRoom.Count; index++)
+ {
+ if (listRoom[index].Id == keys)
+ {
+ oldSelectIndex = index;
+ break;
+ }
+ }
+ }
+ else if (keys != string.Empty)
+ {
+ int i = 0;
+ int textId = Convert.ToInt32(keys);
+ foreach (int rId in dicDevice.Keys)
+ {
+ if (rId == textId)
+ {
+ oldSelectIndex = i;
+ break;
+ }
+ i++;
+ }
+ }
+ }
+
+ #endregion
+ }
+}
--
Gitblit v1.8.0