From 74a9ba8e9a2df9c39f9c2eb212a5ac889a055cd4 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 03 十二月 2019 10:47:51 +0800
Subject: [PATCH] 优化UI细节(请合并最新代码)
---
ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs | 447 ++++++++++++++++++++++++++++---------------------------
1 files changed, 224 insertions(+), 223 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
index d586038..790e4e2 100755
--- a/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
@@ -1,6 +1,7 @@
锘縰sing System;
using System.Collections.Generic;
using Shared.Common;
+using Shared.Phone.Device.CommonForm;
using Shared.Phone.UserView;
using ZigBee.Device;
namespace Shared.Phone.Device.Light
@@ -12,14 +13,6 @@
{
#region 鈼� 鍙橀噺__________________________
/// <summary>
- /// 璁惧鏄惁鍦ㄧ嚎鏍囪瘑--Online
- /// </summary>
- private readonly string DeviceStatus_Online = "Online";
- /// <summary>
- /// 璁惧鐘舵�佸紑鍏虫爣璇�--Switch
- /// </summary>
- private readonly string DeviceStatus_OnOffStatus = "Switch";
- /// <summary>
/// 寮�鍏�
/// </summary>
private Button switchBtn;
@@ -27,10 +20,7 @@
/// The action.
/// </summary>
public Action action;
- /// <summary>
- /// The light view.
- /// </summary>
- private FrameLayout deviceView;
+
/// <summary>
/// The light image.
/// </summary>
@@ -47,10 +37,7 @@
/// 浼犺繃鏉ョ殑鎴块棿
/// </summary>
private Shared.Common.Room room;
- /// <summary>
- /// 鏇村璁剧疆
- /// </summary>
- private Button moreBtn;
+
/// <summary>
/// 鎴块棿
/// </summary>
@@ -68,6 +55,17 @@
/// </summary>
private bool sendedControlCommand = false;
+ /// <summary>
+ /// bodyFrameLayout
+ /// </summary>
+ private FrameLayout bodyFrameLayout;
+
+ private Button StatuBtn;
+
+ /// <summary>
+ /// IsDrawerLockMode
+ /// </summary>
+ public bool IsDrawerLockMode;
#endregion
#region 鈼� 鎺ュ彛__________________________
@@ -114,7 +112,7 @@
{
try
{
- var deviceUI = deviceView.Tag as DeviceUI;
+ var deviceUI = device;
//璁惧涓虹┖
if (deviceUI.CommonDevice == null)
{
@@ -127,25 +125,18 @@
}
if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput)
{
- if ((common as ToggleLight).DeviceStatusReport.CluterID == 6)
+ if (common.DeviceStatusReport.CluterID == 6)
{
var light = deviceUI.CommonDevice as ToggleLight;
- light.DeviceStatusReport = (common as ToggleLight).DeviceStatusReport;
+ light.DeviceStatusReport = common.DeviceStatusReport;
//璁板綍銆佹洿鏂扮姸鎬�
- if(light.DeviceStatusReport.AttriBute==null || light.DeviceStatusReport.AttriBute.Count==0)
+ if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0)
{
return;
}
light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData;
- switchBtn.IsSelected = light.OnOffStatus == 1;
- light.LastDateTime = DateTime.Now;
- }
- //***鏂版敼***璁惧鐘舵�佷笂鎶ヤ腑锛屽綋CluterID=3,璇佹槑璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
- else if ((common as ToggleLight).DeviceStatusReport.CluterID == 3)
- {
- var light = deviceUI.CommonDevice as ToggleLight;
- light.IsOnline = 1;
- deviceIMG.IsSelected = light.IsOnline == 1;
+ deviceIMG.IsSelected = switchBtn.IsSelected = light.OnOffStatus == 1;
+ StatuBtn.Text = CommonFormResouce.GetSwitchStatu(deviceIMG.IsSelected);
light.LastDateTime = DateTime.Now;
}
}
@@ -162,7 +153,7 @@
{
try
{
- var deviceUI = deviceView.Tag as DeviceUI;
+ var deviceUI = device;
//璁惧涓虹┖
if (deviceUI.CommonDevice == null)
{
@@ -173,16 +164,12 @@
{
return;
}
- if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput)
- {
- var light = deviceUI.CommonDevice as ToggleLight;
- light.IsOnline = (common as ToggleLight).IsOnline;
- deviceIMG.IsSelected = light.IsOnline == 1;
- light.LastDateTime = DateTime.Now;
- }
+ deviceUI.CommonDevice.IsOnline = common.IsOnline;
+ deviceIMG.IsSelected = switchBtn.IsSelected = deviceUI.CommonDevice.IsOnline == 1;
+ deviceUI.CommonDevice.LastDateTime = DateTime.Now;
}
catch (Exception ex)
- {
+ {
System.Console.WriteLine($"Error:{ex.Message}");
}
});
@@ -190,43 +177,48 @@
}
#endregion
- #region 鈼� 鍒濆鍖朹_______________________
+ #region 鈼� 鍒濆鍖朹____________________
+ /// <summary>
+ /// 閲嶅啓绉婚櫎鏂规硶
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ ZbGateway.StatusList.Remove(this);
+ //action();
+ //action = null;
+ if (IsDrawerLockMode)
+ {
+ CommonPage.Instance.IsDrawerLockMode = false;
+ }
+ RemoveUpdateControlDeviceStatuAction();
+ base.RemoveFromParent();
+ }
+
+ /// <summary>
+ /// 鏋勯�犳柟娉�
+ /// </summary>
+ public LightControl()
+ {
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+ ZbGateway.StatusList.Add(this);
+ }
/// <summary>
/// 鏄剧ず鐣岄潰
/// </summary>
- /// <param name="device">Device.</param>
+ /// <param name="dev">Device.</param>
/// <param name="room">Room.</param>
- public void Show(DeviceUI device,Shared.Common.Room room)
+ public void Show(DeviceUI dev,Shared.Common.Room room)
{
- #region topview
-
- var topBGView = new FrameLayout()鈥� {鈥� Height = Application.GetRealHeight(CommonPage.Navigation_Height),鈥� BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor鈥� };鈥� AddChidren(topBGView);鈥� var topView = new FrameLayout()鈥� {鈥� Y = Application.GetRealHeight(CommonPage.NavigationTitle_Y),鈥� Height = Application.GetRealHeight(CommonPage.Navigation_Height - CommonPage.NavigationTitle_Y),鈥� BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,鈥� };鈥� AddChidren(topView);
-
- moreBtn = new Device.CommonForm.SelectedStatuButton()
- {
- X=Application.GetRealWidth(CommonPage.AppRealWidth-150),
- Width=Application.GetMinReal(110),
- Height=Application.GetMinReal(110),
- Gravity=Gravity.CenterVertical,
- UnSelectedImagePath = "Item/More.png",
- SelectedImagePath = "Item/MoreSelected.png",
- };
- topView.AddChidren(moreBtn);
-
- var back = new Device.CommonForm.BackButton() { };鈥� topView.AddChidren(back);
- back.MouseUpEventHandler += (sender, e) =>
- {
- this.RemoveFromParent();
- };
-
- if (device == null || device.CommonDevice == null || room == null)
- {
- return;
- }
- this.device = device;
- this.zbGateway = this.device.CommonDevice.Gateway;
+ device = dev;
+ zbGateway = this.device.CommonDevice.Gateway;
this.room = room;
- var light = device.CommonDevice as ToggleLight;
+
+ AddTop();
+
+ AddBodyView(device);
+
+
+ var light = dev.CommonDevice as ToggleLight;
//琛ヤ笂闈炶繙绋�
if (light.Gateway == null)
{
@@ -249,122 +241,9 @@
light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
}
}
- #endregion
- #region midFL
- var midFL = new FrameLayout()
- {
- Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.Navigation_Height),
- Y = topView.Bottom,
- BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
- };
- this.AddChidren(midFL);
-
- var itemView = new FrameLayout()
- {
- X = Application.GetRealWidth(50),
- Y = Application.GetRealHeight(50),
- Width = Application.GetRealWidth(CommonPage.AppRealWidth - 100),
- Height = Application.GetRealHeight(850),
- Radius = CommonPage.BigFormRadius,
- Gravity = Gravity.CenterHorizontal,
- BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor
- };
- midFL.AddChidren(itemView);
- deviceView = new FrameLayout()
- {
- X = 2,
- Y = 2,
- Width = itemView.Width - 4,
- Height = itemView.Height - Application.GetRealHeight(130),
- BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
- Tag = device
- };
- itemView.AddChidren(deviceView);
-
- collectionBtn = new Button()
- {
- X = deviceView.Width - Application.GetRealWidth(130),
- Y = Application.GetRealHeight(20),
- Width = Application.GetMinReal(110),
- Height = Application.GetMinReal(110),
- UnSelectedImagePath = "Item/Collection.png",
- SelectedImagePath = "Item/CollectionSelected.png"
- };
- deviceView.AddChidren(collectionBtn);
-
- deviceIMG = new Button()
- {
- Y = Application.GetRealHeight(100),
- Height = Application.GetMinRealAverage(240),
- Width = Application.GetMinRealAverage(240),
- Gravity = Gravity.CenterHorizontal,
- UnSelectedImagePath = device.IconPath,
- SelectedImagePath = device.OnlineIconPath,
- IsSelected = light.IsOnline == 1,
- Tag = DeviceStatus_Online
- };
- deviceView.AddChidren(deviceIMG);
-
- var lightName = new Button()
- {
- Y = deviceIMG.Bottom,
- Height = Application.GetRealHeight(85),
- Gravity = Gravity.CenterHorizontal,
- Text = device.CommonDevice.DeviceEpointName,
- TextColor = ZigbeeColor.Current.GXCTextBlackColor
- };
- deviceView.AddChidren(lightName);
-
- switchBtn = new Button()
- {
- Y = lightName.Bottom + Application.GetRealHeight(70),
- Gravity = Gravity.CenterHorizontal,
- Width = Application.GetMinRealAverage(180),
- Height = Application.GetMinRealAverage(120),
- UnSelectedImagePath = "Item/Switch.png",
- SelectedImagePath = "Item/SwitchSelected.png",
- Tag = DeviceStatus_OnOffStatus,
- IsSelected = light.OnOffStatus == 1
- };
- deviceView.AddChidren(switchBtn);
-
- roomBtn = new Button()
- {
- X = Application.GetRealWidth(50),
- Y = Application.GetRealHeight(25) + deviceView.Bottom,
- Width = Application.GetMinReal(80),
- Height = Application.GetMinReal(80),
- UnSelectedImagePath = "Item/Room.png",
- SelectedImagePath = "Item/RoomSelected.png"
- };
- itemView.AddChidren(roomBtn);
-
- roomName = new Button()
- {
- X = roomBtn.Right + Application.GetRealWidth(20),
- Y = roomBtn.Y,
- Width = Application.GetRealWidth(400),
- Height = Application.GetRealHeight(80),
- Text = room.Name,
- TextAlignment = TextAlignment.CenterLeft,
- TextColor = ZigbeeColor.Current.GXCTextBlackColor,
- SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor
- };
- itemView.AddChidren(roomName);
-
- //var moreBtn = new Button()
- //{
- // X = itemView.Width - Application.GetRealWidth(130),
- // Y = roomBtn.Y,
- // Width = Application.GetMinReal(80),
- // Height = Application.GetMinReal(80),
- // UnSelectedImagePath = "Item/More.png",
- // SelectedImagePath = "Item/MoreSelected.png",
- //};
- //itemView.AddChidren(moreBtn);
- var dev = Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
- if (dev == null)
+ var de = Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
+ if (de == null)
{
collectionBtn.IsSelected = false;
}
@@ -372,28 +251,163 @@
{
collectionBtn.IsSelected = true;
}
- this.BindEvent();
- #endregion
+
+
+ BindEvent();
+
}
- /// <summary>
- /// 閲嶅啓绉婚櫎鏂规硶
- /// </summary>
- public override void RemoveFromParent()
- {
- ZbGateway.StatusList.Remove(this);
- action();
- RemoveUpdateControlDeviceStatuAction();
- base.RemoveFromParent();
- }
+ #endregion
+
+ #region 鈼� Add______________________________
/// <summary>
- /// 鏋勯�犳柟娉�
+ /// AddTop
/// </summary>
- public LightControl()
+ public void AddTop()
{
- BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
- ZbGateway.StatusList.Add(this);
+ var top = new TopFrameLayout();
+ AddChidren(top);
+ top.InitTopview();
+ top.backButton.MouseUpEventHandler += (sender, e) =>
+ {
+ RemoveFromParent();
+ };
+
+
+ var moreBtn = new Button
+ {
+ X = Application.GetRealWidth(953),
+ Width = Application.GetMinReal(69),
+ Height = Application.GetMinReal(69),
+ Gravity=Gravity.CenterVertical,
+ UnSelectedImagePath = "Item/More.png"
+ };
+ top.topView.AddChidren(moreBtn);
+
+ moreBtn.MouseUpEventHandler += More;
+
+ }
+ /// <summary>
+ /// AddBodyView
+ /// </summary>
+ public void AddBodyView(DeviceUI device)
+ {
+ bodyFrameLayout = new FrameLayout()
+ {
+ Y = Application.GetRealHeight(184),
+ Height = Application.GetRealHeight(1737),
+ BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
+ };
+ AddChidren(bodyFrameLayout);
+
+ var itemView = new FrameLayout()
+ {
+ Y = Application.GetRealHeight(115),
+ Width = Application.GetRealWidth(965),
+ Height = Application.GetRealHeight(1316),
+ Radius =(uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius),
+ Gravity = Gravity.CenterHorizontal,
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ bodyFrameLayout.AddChidren(itemView);
+
+ collectionBtn = new Button()
+ {
+ X = Application.GetRealWidth(850),
+ Y = Application.GetRealHeight(46),
+ Width = Application.GetMinReal(69),
+ Height = Application.GetMinReal(69),
+ UnSelectedImagePath = "Item/Collection.png",
+ SelectedImagePath = "Item/CollectionSelected.png"
+ };
+ itemView.AddChidren(collectionBtn);
+
+ var deviceNameBtn = new Button()
+ {
+ Y = Application.GetRealHeight(46),
+ Width=Application.GetRealWidth(500),
+ Height = Application.GetRealHeight(60),
+ Gravity = Gravity.CenterHorizontal,
+ Text = device.CommonDevice.DeviceEpointName,
+ TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+ TextSize=15
+ };
+ itemView.AddChidren(deviceNameBtn);
+
+ StatuBtn = new Button
+ {
+ Y = Application.GetRealHeight(118),
+ Width = Application.GetRealWidth(600),
+ Height = Application.GetRealHeight(60),
+ Gravity = Gravity.CenterHorizontal,
+ TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+ Text=CommonFormResouce.GetSwitchStatu(device.CommonDevice.IsOnline==1)
+ };
+ itemView.AddChidren(StatuBtn);
+
+ deviceIMG = new Button()
+ {
+ Y = Application.GetRealHeight(389),
+ Width = Application.GetMinRealAverage(377),
+ Height = Application.GetMinRealAverage(435),
+ Gravity = Gravity.CenterHorizontal,
+ UnSelectedImagePath = "Light/DeskLamp.png",
+ SelectedImagePath = "Light/DeskLampSelected.png",
+ IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 1
+ };
+ itemView.AddChidren(deviceIMG);
+
+ switchBtn = new Button()
+ {
+ Y = Application.GetRealHeight(996),
+ Width = Application.GetMinRealAverage(81),
+ Height = Application.GetMinRealAverage(81),
+ Gravity = Gravity.CenterHorizontal,
+ UnSelectedImagePath = "Item/Switch.png",
+ SelectedImagePath = "Item/SwitchSelected.png",
+ IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 1
+ };
+ itemView.AddChidren(switchBtn);
+
+ var roomBG = new Button
+ {
+ Y = Application.GetRealHeight(1178-50),
+ Height = Application.GetRealHeight(138+50),
+ BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor,
+ Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius)
+ };
+ itemView.AddChidren(roomBG);
+
+ var roomBG2 = new Button
+ {
+ Y = Application.GetRealHeight(1178 - 50),
+ Height = Application.GetRealHeight(50),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
+ };
+ itemView.AddChidren(roomBG2);
+
+ roomBtn = new Button()
+ {
+ X = Application.GetRealWidth(CommonFormResouce.X_Left),
+ Y = Application.GetRealHeight(1207),
+ Width = Application.GetMinReal(80),
+ Height = Application.GetMinReal(80),
+ UnSelectedImagePath = "Item/Room.png"
+ };
+ itemView.AddChidren(roomBtn);
+
+ roomName = new Button()
+ {
+ X = Application.GetRealWidth(150),
+ Y = Application.GetRealHeight(1224),
+ Width = Application.GetRealWidth(400),
+ Height = Application.GetRealHeight(50),
+ Text = room.Name,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextColor = ZigbeeColor.Current.GXCTextWhiteColor
+ };
+ itemView.AddChidren(roomName);
}
#endregion
@@ -405,10 +419,8 @@
private void BindEvent()
{
switchBtn.MouseUpEventHandler += Switch;
+ deviceIMG.MouseUpEventHandler += Switch;
collectionBtn.MouseUpEventHandler += Collection;
- moreBtn.MouseUpEventHandler += More;
- roomBtn.MouseUpEventHandler += BackToRoomHandler;
- roomName.MouseUpEventHandler += BackToRoomHandler;
}
#endregion
@@ -425,6 +437,8 @@
sendedControlCommand = false;
zbGateway.ReportAction += UpdateDeviceControllStatu;
switchBtn.IsSelected = !switchBtn.IsSelected;
+ deviceIMG.IsSelected = !deviceIMG.IsSelected;
+ StatuBtn.Text = CommonFormResouce.GetSwitchStatu(deviceIMG.IsSelected);
if (switchBtn.IsSelected == true)
{
(device.CommonDevice as ToggleLight).SwitchControl(1);
@@ -447,6 +461,8 @@
}
});
}
+
+
#endregion
@@ -479,31 +495,16 @@
private void Collection(object sender, MouseEventArgs e)
{
//collection
- if (collectionBtn.IsSelected)
+ if ((sender as Button).IsSelected)
{
- Shared.Common.Room.Lists[0].DeleteDevice(device.FileName);
- collectionBtn.IsSelected = false;
+ Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName);
+ (sender as Button).IsSelected = false;
}
else
{
- Shared.Common.Room.Lists[0].AddDevice(device.FileName);
- collectionBtn.IsSelected = true;
+ Shared.Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName);
+ (sender as Button).IsSelected = true;
}
- action?.Invoke();
- }
-
- #endregion
-
- #region 鈼� 鍥炲埌涓婚〉________________________
- /// <summary>
- /// 鍥炲埌涓婚〉
- /// </summary>
- /// <param name="sender">Sender.</param>
- /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
- private void BackToRoomHandler(object sender, MouseEventArgs mouseEventArgs )
- {
- //backToRoom
-
}
#endregion
--
Gitblit v1.8.0