From 3793a9a38ac6c4c4111c2bba3a35a71c30601e82 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 13 四月 2020 19:38:24 +0800 Subject: [PATCH] 上传个东西 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs | 174 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 138 insertions(+), 36 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs index d0599a6..9d32c3d 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs @@ -21,7 +21,7 @@ /// </summary> public Action<List<CommonDevice>> SelectDeviceEvent = null; /// <summary> - /// 褰撳墠閫夋嫨鐨勪富閿� + /// 褰撳墠閫夋嫨鐨勪富閿�(鎴块棿绫诲瀷鏃讹細鎴块棿ID 璁惧绫诲瀷鏃讹細R鏂囦欢閲岄潰鐨処D) /// </summary> public string nowSelectKeys { @@ -29,20 +29,28 @@ { if (dicDevice != null) { - return oldSelectKeys.ToString(); + int index = 0; + foreach (var rId in dicDevice.Keys) + { + if (index == oldSelectIndex) + { + return rId.ToString(); + } + } + return string.Empty; } - return dicRoom[oldSelectKeys].Id; + return listRoom[oldSelectIndex].Id; } } /// <summary> - /// 褰撳墠閫夋嫨鐨勪富閿�(鍐呴儴浣跨敤) + /// 褰撳墠閫夋嫨鐨勭储寮�(鍐呴儴浣跨敤) /// </summary> - private int oldSelectKeys = -1; + private int oldSelectIndex = -1; /// <summary> /// 鎴块棿瀵硅薄 /// </summary> - private Dictionary<int, Common.Room> dicRoom = null; + private List<Common.Room> listRoom = null; /// <summary> /// 璁惧瀵硅薄 /// </summary> @@ -66,11 +74,7 @@ /// <param name="i_listRoom">鎴块棿鍒楄〃</param> public RoomDeviceGroupMenuControl(List<Common.Room> i_listRoom) { - this.dicRoom = new Dictionary<int, Common.Room>(); - for (int i = 0; i < i_listRoom.Count; i++) - { - this.dicRoom[i] = i_listRoom[i]; - } + this.listRoom = i_listRoom; this.Height = Application.GetRealHeight(204); } @@ -102,20 +106,20 @@ var btnTempWidth = new ButtonBase(); btnTempWidth.TextSize = 12; - if (this.dicRoom != null) + if (this.listRoom != null) { //鍒濆鍖栨埧闂存ā寮忕殑鎺т欢 - foreach (int keys in dicRoom.Keys) + for (int i = 0; i < listRoom.Count; i++) { - if (oldSelectKeys == -1) + if (oldSelectIndex == -1) { //鍒濆鍊� - oldSelectKeys = keys; + oldSelectIndex = i; } //璁$畻瀛楃鐨勭湡瀹炲搴� - btnTempWidth.Text = dicRoom[keys].Name; - this.DoInitControl(scrolContr, keys, dicRoom[keys].Name, btnTempWidth.GetRealWidthByText()); + btnTempWidth.Text = listRoom[i].Name; + this.DoInitControl(scrolContr, i, i, listRoom[i].Name, btnTempWidth.GetRealWidthByText()); } } else @@ -124,19 +128,19 @@ int index = 0; foreach (int keys in dicDevice.Keys) { - if (oldSelectKeys == -1) + if (oldSelectIndex == -1) { //鍒濆鍊� - oldSelectKeys = keys; + oldSelectIndex = index; } //璁$畻瀛楃鐨勭湡瀹炲搴� btnTempWidth.Text = Language.StringByID(keys); - this.DoInitControl(scrolContr, keys, btnTempWidth.Text, btnTempWidth.GetRealWidthByText()); + this.DoInitControl(scrolContr, keys, index, btnTempWidth.Text, btnTempWidth.GetRealWidthByText()); index++; } } //璁╂帶浠舵粦鍔ㄥ埌鎸囧畾鐨勭储寮曚綅缃� - scrolContr.ScrollToViewIndex(oldSelectKeys + 1); + scrolContr.ScrollToViewIndex(oldSelectIndex + 1); } /// <summary> @@ -144,9 +148,10 @@ /// </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, string text, int textWidth) + private void DoInitControl(HorizontalScrolViewLayout scrolContr, int keys, int index, string text, int textWidth) { //甯﹀簳鍥炬帶浠剁殑鏈�灏忓搴� int minWidth = Application.GetRealWidth(255); @@ -163,7 +168,7 @@ frameBack.Gravity = Gravity.Center; frameBack.Height = Application.GetRealHeight(159); frameBack.Width = realWidth; - if (oldSelectKeys == keys) + if (oldSelectIndex == index) { frameBack.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png"; oldFrameBack = frameBack; @@ -179,7 +184,7 @@ btnText.Text = text; btnText.TextSize = 12; btnText.TextAlignment = TextAlignment.Center; - if (oldSelectKeys == keys) + if (oldSelectIndex == index) { btnText.TextColor = UserCenterColor.Current.White; oldBtnText = btnText; @@ -192,12 +197,12 @@ frameBack.ButtonClickEvent += (sender, e) => { - if (oldSelectKeys == keys) + if (oldSelectIndex == index) { //鍚屼竴涓笢瑗� return; } - oldSelectKeys = keys; + oldSelectIndex = index; //鐘舵�佸彉鏇� frameBack.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png"; @@ -212,25 +217,122 @@ { this.SelectDeviceEvent?.Invoke(this.dicDevice[keys]); } - else if (this.dicRoom != null) + else if (this.listRoom != null) { - this.SelectRoomEvent?.Invoke(this.dicRoom[keys]); + this.SelectRoomEvent?.Invoke(this.listRoom[keys]); } }; //璋冪敤鍥炶皟鍑芥暟 - if (oldSelectKeys == keys) + if (oldSelectIndex == index) { if (this.dicDevice != null) { this.SelectDeviceEvent?.Invoke(this.dicDevice[keys]); } - else if (this.dicRoom != null) + else if (this.listRoom != null) { - this.SelectRoomEvent?.Invoke(this.dicRoom[keys]); + 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 FrameLayoutControl(); + 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 @@ -257,13 +359,13 @@ /// <param name="keys">鎴块棿ID 鎴栬�� R鏂囦欢閲岄潰鐨勬暟鍊肩紪鍙�(杞负瀛楃涓茬被鍨�)</param> public void SetDefultIndex(string keys) { - if (dicRoom != null) + if (listRoom != null) { - foreach (int index in dicRoom.Keys) + for (int index = 0; index < listRoom.Count; index++) { - if (dicRoom[index].Id == keys) + if (listRoom[index].Id == keys) { - oldSelectKeys = index; + oldSelectIndex = index; break; } } @@ -276,7 +378,7 @@ { if (rId == textId) { - oldSelectKeys = i; + oldSelectIndex = i; break; } i++; -- Gitblit v1.8.0