From bff8993501334c4f3c5f902216fe03253be747f8 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 15 四月 2020 16:59:01 +0800
Subject: [PATCH] 合并新代码
---
ZigbeeApp20200414/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs | 174 ++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 138 insertions(+), 36 deletions(-)
diff --git a/ZigbeeApp20200414/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs b/ZigbeeApp20200414/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs
index d0599a6..9d32c3d 100755
--- a/ZigbeeApp20200414/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs
+++ b/ZigbeeApp20200414/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