陈嘉乐
2020-04-27 18b93d511dc764b469d7c4a7e755f7274f89cdb4
ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -16,6 +16,10 @@
        #region ■ 变量声明___________________________
        /// <summary>
        /// 整个界面的上下滑动控件
        /// </summary>
        private VerticalFrameControl listBodyContr = null;
        /// <summary>
        /// 房间的滑动容器控件
        /// </summary>
        private HorizontalPages roomPageView = null;
@@ -45,16 +49,23 @@
        /// </summary>
        public void ShowForm()
        {
            //先初始化左滑房间列表界面
            if (ListRoomViewFrom.Instance == null)
            //先初始化左滑房间列表界面(在反射里面初始化)
            if (ListRoomViewFrom.Instance == null) { }
            //整个背景的上下滑动控件
            if (this.listBodyContr == null)
            {
                var roomList = new ListRoomViewFrom();
                CommonPage.Instance.AddLeftView(roomList);
                roomList.ShowForm();
                this.listBodyContr = new VerticalFrameControl();
                listBodyContr.Height = this.Height;
                listBodyContr.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
                this.AddChidren(listBodyContr);
            }
            this.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
            //清除全部
            this.RemoveAll();
            else
            {
                //清除全部
                this.listBodyContr.frameTable.RemoveAll();
                listBodyContr.RecoverTableHeight();
            }
            //初始化头部控件
            this.InitTopFrameLayoutControl();
@@ -78,23 +89,26 @@
            topFrameLayout.Y = Application.GetRealHeight(60);
            topFrameLayout.Height = Application.GetRealHeight(127);
            topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
            this.AddChidren(topFrameLayout);
            listBodyContr.frameTable.AddChidren(topFrameLayout);
            //楼层图标
            var btnFloorIcon = new IconViewControl(69);
            btnFloorIcon.X = ControlCommonResourse.XXLeft;
            btnFloorIcon.Gravity = Gravity.CenterVertical;
            btnFloorIcon.UnSelectedImagePath = "Item/Floor.png";
            topFrameLayout.AddChidren(btnFloorIcon);
            //拥有楼层
            this.btnFloorName = null;
            if (Config.Instance.Home.FloorDics.Count > 0)
            {
                //楼层图标
                var btnFloorIcon = new IconViewControl(69);
                btnFloorIcon.X = ControlCommonResourse.XXLeft;
                btnFloorIcon.Gravity = Gravity.CenterVertical;
                btnFloorIcon.UnSelectedImagePath = "Item/Floor.png";
                topFrameLayout.AddChidren(btnFloorIcon);
                //拥有楼层的时候,点击才有效
                btnFloorIcon.ButtonClickEvent += (sender, e) =>
                {
                    //显示选择楼层的界面
                    this.ShowSelectFloorForm(btnFloorName);
                };
                //楼层名
                this.btnFloorName = new NormalViewControl(500, 100, true);
                btnFloorName.X = btnFloorIcon.Right;
@@ -135,7 +149,7 @@
            btnHouseName.IsBold = true;
            btnHouseName.Text = Config.Instance.Home.Name;
            btnHouseName.Width = btnHouseName.GetRealWidthByText();
            this.AddChidren(btnHouseName);
            this.listBodyContr.frameTable.AddChidren(btnHouseName);
            //切换住宅
            btnHouseName.MouseLongEventHandler += (sender, e) =>
@@ -147,7 +161,7 @@
                }
                else
                {
                    var selectHouse = new Device.Category.SelectHouse();
                    var selectHouse = new Category.SelectHouseForm();
                    selectHouse.Init();
                    selectHouse.HouseAction = (houseId) =>
                    {
@@ -162,8 +176,18 @@
        /// </summary>
        private void InitMidFrameLayoutControl()
        {
            //成员身份不允许添加网关
            if (UserCenterResourse.UserInfo.AuthorityNo == 3)
            {
                //初始化场景,功能的切换控件
                this.InitSceneFunctionSwitchControl();
                //初始化房间滑动控件
                this.InitRoomHorizontalPagesControl();
                return;
            }
            //检测是否绑定有网关
            if (this.CheckHadBindGateway() == false)
            if (Common.Config.Instance.Home.IsVirtually == false && this.CheckHadBindGateway() == false)
            {
                //显示没有绑定过网关的界面
                this.ShowNoGatewayTip();
@@ -172,7 +196,6 @@
            {
                //初始化场景,功能的切换控件
                this.InitSceneFunctionSwitchControl();
                //初始化房间滑动控件
                this.InitRoomHorizontalPagesControl();
            }
@@ -190,7 +213,7 @@
            functionSceneView.Height = Application.GetRealHeight(167);
            functionSceneView.Gravity = Gravity.CenterHorizontal;
            functionSceneView.BackgroundImagePath = "Item/SceneFunctionBG.png";
            this.AddChidren(functionSceneView);
            this.listBodyContr.frameTable.AddChidren(functionSceneView);
            //场景
            var btnScene = new NormalViewControl(350, 100, true);
@@ -216,13 +239,13 @@
            if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 1)
            {
                btnScene.IsSelected = true;
                btnScene.TextSize = 16;
                btnScene.TextSize = 17;
                btnScene.IsBold = true;
            }
            else if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
            {
                btnFunction.IsSelected = true;
                btnFunction.TextSize = 16;
                btnFunction.TextSize = 17;
                btnFunction.IsBold = true;
            }
@@ -234,7 +257,7 @@
                Gravity = Gravity.CenterHorizontal,
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
            };
            this.AddChidren(bodyFrameLayout);
            this.listBodyContr.frameTable.AddChidren(bodyFrameLayout);
            //选择功能分栏
            btnFunction.ButtonClickEvent += (sender, e) =>
@@ -251,7 +274,7 @@
                btnScene.IsBold = false;
                btnFunction.IsSelected = true;
                btnFunction.TextSize = 16;
                btnFunction.TextSize = 17;
                btnFunction.IsBold = true;
                //刷新设备桌布控件
                this.RefreshBodyView();
@@ -267,7 +290,7 @@
                UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
                btnScene.IsSelected = true;
                btnScene.TextSize = 16;
                btnScene.TextSize = 17;
                btnScene.IsBold = true;
                btnFunction.IsSelected = false;
@@ -287,7 +310,7 @@
            bg.Y = Application.GetRealHeight(302);
            bg.Gravity = Gravity.CenterHorizontal;
            bg.UnSelectedImagePath = "Item/NoBindGW.png";
            this.AddChidren(bg);
            this.listBodyContr.frameTable.AddChidren(bg);
            var tip = new NormalViewControl(Application.GetMinRealAverage(717), Application.GetMinRealAverage(58), false);
            tip.Y = Application.GetRealHeight(815);
@@ -295,19 +318,19 @@
            tip.TextID = R.MyInternationalizationString.NewAccountNeedBingGW;
            tip.TextColor = ZigbeeColor.Current.GXCTextGrayColor;
            tip.TextAlignment = TextAlignment.Center;
            this.AddChidren(tip);
            this.listBodyContr.frameTable.AddChidren(tip);
            var addBG = new PicViewControl(971, 366);
            addBG.Y = Application.GetRealHeight(1048);
            addBG.UnSelectedImagePath = "Item/VirtualFrame.png";
            addBG.Gravity = Gravity.CenterHorizontal;
            this.AddChidren(addBG);
            this.listBodyContr.frameTable.AddChidren(addBG);
            var addGatewayBtn = new IconViewControl(89);
            addGatewayBtn.Y = Application.GetRealHeight(1143);
            addGatewayBtn.UnSelectedImagePath = "Item/Add_GW.png";
            addGatewayBtn.Gravity = Gravity.CenterHorizontal;
            this.AddChidren(addGatewayBtn);
            this.listBodyContr.frameTable.AddChidren(addGatewayBtn);
            addGatewayBtn.ButtonClickEvent += (sender, e) =>
            {
                var form = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm();
@@ -320,7 +343,7 @@
            addTip.TextID = R.MyInternationalizationString.AddSmartGW;
            addTip.TextColor = ZigbeeColor.Current.GXCTextBlackColor;
            addTip.TextAlignment = TextAlignment.Center;
            AddChidren(addTip);
            this.listBodyContr.frameTable.AddChidren(addTip);
            addTip.ButtonClickEvent += (sender, e) =>
            {
@@ -341,9 +364,22 @@
            //左右滑动控件的背景容器
            var frameBack = new FrameLayout();
            frameBack.Y = Application.GetRealHeight(302);
            frameBack.Width = Application.GetRealWidth(CommonPage.AppRealWidth);
            frameBack.Width = this.Width;
            frameBack.Height = Application.GetRealHeight(478);
            this.AddChidren(frameBack);
            this.listBodyContr.frameTable.AddChidren(frameBack);
            //房间滑动控件左边的虚拟图片
            var mLeftImageView = new ImageView();
            mLeftImageView.ImagePath = "RoomIcon/19.jpg";
            mLeftImageView.Radius = (uint)Application.GetRealHeight(17);
            mLeftImageView.Width = Application.GetRealWidth(717);
            mLeftImageView.Height = Application.GetRealHeight(478);
            //房间滑动控件右边的虚拟图片
            var mRightImageView = new ImageView();
            mRightImageView.ImagePath = "RoomIcon/19.jpg";
            mRightImageView.Radius = (uint)Application.GetRealHeight(17);
            mRightImageView.Width = mLeftImageView.Width;
            mRightImageView.Height = mLeftImageView.Height;
            this.roomPageView = new HorizontalPages();
            roomPageView.Width = frameBack.Width;
@@ -358,7 +394,10 @@
            btnRoomBottomShadow.Y = frameBack.Bottom;
            btnRoomBottomShadow.Gravity = Gravity.CenterHorizontal;
            btnRoomBottomShadow.UnSelectedImagePath = "Room/RoomCardShadow.png";
            this.AddChidren(btnRoomBottomShadow);
            this.listBodyContr.frameTable.AddChidren(btnRoomBottomShadow);
            //设置控制最左和最右2边填充的假背景View,不设置不显示,需要在AddChidren 前调用该方法
            roomPageView.SetLeftAndRightImageView(mLeftImageView, mRightImageView);
            //当前房间
            var listRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
@@ -368,7 +407,7 @@
                var roomView = new RoomView(0, 0);
                roomPageView.AddChidren(roomView);
                roomView.Init(listRoom[i]);
                if (listRoom[i].Id == HdlRoomLogic.Current.CurrentRoom.Id)
                {
                    //当前房间,则显示那些数据出来
@@ -381,42 +420,34 @@
                    roomView.HideName(true);
                }
            }
            //设置房间的初始选择
            roomPageView.PageIndex = curIndex;
            //房间能够滑动的时候才显示
            FrameLayout btnRoomLeftShadow = null;
            FrameLayout btnRoomRightShadow = null;
            if (listRoom.Count > 1)
            {
                //在房间卡片左边添加遮罩
                btnRoomLeftShadow = new FrameLayout();
                btnRoomLeftShadow.Width = Application.GetRealWidth(124);
                btnRoomLeftShadow.Height = roomPageView.Height - roomPageView.JMBJ * 2;
                btnRoomLeftShadow.Gravity = Gravity.CenterVertical;
                btnRoomLeftShadow.BackgroundColor = 0x1c000000;
                btnRoomLeftShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
                btnRoomLeftShadow.Visible = curIndex >= 1;
                frameBack.AddChidren(btnRoomLeftShadow);
                //在房间卡片右边添加遮罩
                btnRoomRightShadow = new FrameLayout();
                btnRoomRightShadow.Width = btnRoomLeftShadow.Width;
                btnRoomRightShadow.Height = btnRoomLeftShadow.Height;
                btnRoomRightShadow.X = Application.GetRealWidth(956);
                btnRoomRightShadow.Gravity = Gravity.CenterVertical;
                btnRoomRightShadow.BackgroundColor = btnRoomLeftShadow.BackgroundColor;
                btnRoomRightShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
                btnRoomRightShadow.Visible = curIndex < listRoom.Count - 1;
                frameBack.AddChidren(btnRoomRightShadow);
            }
            //在房间卡片左边添加遮罩
            var btnRoomLeftShadow = new FrameLayout();
            btnRoomLeftShadow.Width = Application.GetRealWidth(124);
            btnRoomLeftShadow.Height = roomPageView.Height - roomPageView.JMBJ * 2;
            btnRoomLeftShadow.Gravity = Gravity.CenterVertical;
            btnRoomLeftShadow.BackgroundColor = 0x1c000000;
            btnRoomLeftShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
            //frameBack.AddChidren(btnRoomLeftShadow);//暂时不加遮罩
            //在房间卡片右边添加遮罩
            var btnRoomRightShadow = new FrameLayout();
            btnRoomRightShadow.Width = btnRoomLeftShadow.Width;
            btnRoomRightShadow.Height = btnRoomLeftShadow.Height;
            btnRoomRightShadow.X = Application.GetRealWidth(956);
            btnRoomRightShadow.Gravity = Gravity.CenterVertical;
            btnRoomRightShadow.BackgroundColor = btnRoomLeftShadow.BackgroundColor;
            btnRoomRightShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
            //frameBack.AddChidren(btnRoomRightShadow);//暂时不加遮罩
            //控件开始滑动的事件
            roomPageView.StartScrollAction += () =>
            {
                this.isRoomChanging = true;
                //开始滑动时,隐藏当前的数据显示
                (roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(true);
                if (btnRoomLeftShadow != null) { btnRoomLeftShadow.Visible = false; }
                if (btnRoomRightShadow != null) { btnRoomRightShadow.Visible = false; }
                btnRoomLeftShadow.Visible = false;
                btnRoomRightShadow.Visible = false;
                btnRoomBottomShadow.Visible = false;
            };
            roomPageView.EndScrollAction += () =>
@@ -438,8 +469,8 @@
                    (roomPageView.GetChildren(curIndex + 1) as RoomView).HideName(true);
                }
                if (btnRoomLeftShadow != null) { btnRoomLeftShadow.Visible = curIndex >= 1; }
                if (btnRoomRightShadow != null) { btnRoomRightShadow.Visible = curIndex < listRoom.Count - 1; }
                btnRoomLeftShadow.Visible = true;
                btnRoomRightShadow.Visible = true;
                btnRoomBottomShadow.Visible = true;
                //切换当前房间
                HdlRoomLogic.Current.CurrentRoom = listRoom[curIndex];
@@ -447,6 +478,13 @@
                this.isRoomChanging = false;
                this.RefreshBodyView();
            };
            //设置房间的初始选择
            roomPageView.PageIndex = curIndex;
            //如果索引是第一个时,它触发不了事件,需要手动触发
            if (curIndex == 0)
            {
                roomPageView.EndScrollAction();
            }
        }
        /// <summary>
@@ -455,6 +493,11 @@
        /// <param name="room"></param>
        public void SetRoomPageViewSelect(Room room)
        {
            if (roomPageView == null)
            {
                //当没有绑定有网关,左滑时,点击房间列表,则不鸟它
                return;
            }
            var listRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
            for (int i = 0; i < listRoom.Count; i++)
            {
@@ -486,6 +529,8 @@
        {
            //先清空缓存
            bodyFrameLayout.RemoveAll();
            bodyFrameLayout.Height = Application.GetRealHeight(750);
            this.listBodyContr.RecoverTableHeight();
            this.dicSceneCardControl.Clear();
            this.dicDeviceCardControl.Clear();
@@ -493,10 +538,9 @@
            foreach (var mainkeys in HdlRoomLogic.Current.CurrentRoom.ListDevice)
            {
                var device = LocalDevice.Current.GetDevice(mainkeys);
                if (device == null
                    || device.Type == DeviceType.OnOffSwitch)//干接点
                //判断该设备能否显示在主页
                if (LocalDevice.Current.CanShowInHomeHomeMainPage(device) == false)
                {
                    //这个设备不见了
                    continue;
                }
                listDevice.Add(device);
@@ -508,23 +552,23 @@
                ShowNoFunctionTip();
                return;
            }
            //列表控件
            var listView = new VerticalFrameControl();
            listView.Height = bodyFrameLayout.Height;
            bodyFrameLayout.AddChidren(listView);
            //设备列表容器控件
            var listDeviceBackContr = new FrameLayout();
            listDeviceBackContr.Height = bodyFrameLayout.Height;
            bodyFrameLayout.AddChidren(listDeviceBackContr);
            HdlThreadLogic.Current.RunThread(() =>
            {
                //初始化设备卡片列表控件
                this.InitDeviceListCardControl(listView, listDevice);
                this.InitDeviceListCardControl(listDeviceBackContr, listDevice);
            });
        }
        /// <summary>
        /// 初始化设备卡片列表控件
        /// </summary>
        /// <param name="listView"></param>
        private void InitDeviceListCardControl(VerticalFrameControl listView, List<CommonDevice> listDevice)
        /// <param name="listDeviceBackContr"></param>
        private void InitDeviceListCardControl(FrameLayout listDeviceBackContr, List<CommonDevice> listDevice)
        {
            //设备计数
            int contrCount = 0;
@@ -535,7 +579,7 @@
            var listContr = new List<Controls.DeviceCardCommon>();
            foreach (var device in listDevice)
            {
                if (this.isRoomChanging == true || listView.Parent == null)
                if (this.isRoomChanging == true || listDeviceBackContr.Parent == null)
                {
                    //放弃初始化控件
                    return;
@@ -592,7 +636,7 @@
                    //初始化卡片
                    cardContr.X = XX;
                    cardContr.Y = YY;
                    listView.frameTable.AddChidren(cardContr);
                    listDeviceBackContr.AddChidren(cardContr);
                    cardContr.InitControl(device);
                    //卡片需要被移除的事件
                    cardContr.CardNeedRemoveEvent += () =>
@@ -617,16 +661,21 @@
                    if (contrCount == listDevice.Count)
                    {
                        //调整桌布大小
                        listView.AdjustTableHeight();
                        if (contrCount > 4)
                        {
                            bodyFrameLayout.Height = listDeviceBackContr.GetChildren(listDeviceBackContr.ChildrenCount - 1).Bottom;
                            listDeviceBackContr.Height = bodyFrameLayout.Height;
                            this.listBodyContr.frameTable.Height = bodyFrameLayout.Bottom;
                        }
                        HdlThreadLogic.Current.RunThread(() =>
                        {
                            for (int i = 0; i < listContr.Count; i++)
                            {
                                if (listView.Parent == null)
                                if (listDeviceBackContr.Parent == null)
                                {
                                    return;
                                }
                                System.Threading.Thread.Sleep(20);
                                System.Threading.Thread.Sleep(200);
                                //发送获取状态的命令
                                listContr[i].SendStatuComand();
                            }
@@ -634,8 +683,11 @@
                        }, ShowErrorMode.NO);
                    }
                });
                System.Threading.Thread.Sleep(50);
                if (contrCount > 6)
                {
                    //让它呈现一种直接一次性刷出来的效果
                    System.Threading.Thread.Sleep(50);
                }
            }
        }
@@ -685,7 +737,7 @@
            //设备计数
            int contrCount = 0;
            bool canMove = false;
            int YY = 0;
            foreach (var mainkey in this.dicDeviceCardControl.Keys)
@@ -727,14 +779,19 @@
                }
            }
            //去找一下这个控件的列表容器
            var listView = deleteContr.Parent.Parent as VerticalFrameControl;
            var listView = deleteContr.Parent as FrameLayout;
            //删除掉那张卡片的主键
            deleteContr.RemoveFromParent();
            this.dicDeviceCardControl.Remove(deleteKey);
            //调整桌布高度
            listView?.AdjustTableHeight();
            if (listView.ChildrenCount >= 4)
            {
                bodyFrameLayout.Height = listView.GetChildren(listView.ChildrenCount - 1).Bottom;
                listView.Height = bodyFrameLayout.Height;
                this.listBodyContr.frameTable.Height = bodyFrameLayout.Bottom;
            }
        }
        #endregion
@@ -748,6 +805,8 @@
        {
            //先清空缓存
            bodyFrameLayout.RemoveAll();
            bodyFrameLayout.Height = Application.GetRealHeight(750);
            this.listBodyContr.RecoverTableHeight();
            this.dicSceneCardControl.Clear();
            this.dicDeviceCardControl.Clear();
@@ -770,32 +829,32 @@
                return;
            }
            //列表控件
            var listView = new VerticalFrameControl();
            listView.Height = bodyFrameLayout.Height;
            bodyFrameLayout.AddChidren(listView);
            var listSceneBackContr = new FrameLayout();
            listSceneBackContr.Height = bodyFrameLayout.Height;
            bodyFrameLayout.AddChidren(listSceneBackContr);
            HdlThreadLogic.Current.RunThread(() =>
            {
                //初始化设备卡片列表控件
                this.InitSceneListCardControl(listView, listScene);
                //初始化场景卡片列表控件
                this.InitSceneListCardControl(listSceneBackContr, listScene);
            });
        }
        /// <summary>
        /// 初始化场景卡片列表控件
        /// </summary>
        /// <param name="listView"></param>
        private void InitSceneListCardControl(VerticalFrameControl listView, List<SceneUI> listScene)
        /// <param name="listSceneBackContr"></param>
        private void InitSceneListCardControl(FrameLayout listSceneBackContr, List<SceneUI> listScene)
        {
            //场景计数
            int contrCount = 0;
            //X轴坐标(图片左边有余白)
            int XX = Application.GetMinRealAverage(44);
            int XX = this.GetPictrueRealSize(44);
            //Y轴坐标
            int YY = 0;
            foreach (var sceneUi in listScene)
            {
                if (this.isRoomChanging == true || listView.Parent == null)
                if (this.isRoomChanging == true || listSceneBackContr.Parent == null)
                {
                    //放弃初始化控件
                    return;
@@ -806,7 +865,7 @@
                    var cardContr = new Controls.SceneCardControl();
                    cardContr.X = XX;
                    cardContr.Y = YY;
                    listView.frameTable.AddChidren(cardContr);
                    listSceneBackContr.AddChidren(cardContr);
                    cardContr.InitControl(sceneUi);
                    //卡片需要被移除的事件
                    cardContr.CardNeedRemoveEvent += () =>
@@ -817,26 +876,36 @@
                    //设备计数
                    contrCount++;
                    //每两个后,X轴重置
                    XX = contrCount % 2 == 0 ? Application.GetMinRealAverage(44) : cardContr.Right + Application.GetMinRealAverage(20);
                    XX = contrCount % 2 == 0 ? this.GetPictrueRealSize(44) : cardContr.Right + this.GetPictrueRealSize(20);
                    if (contrCount % 2 == 0)
                    {
                        //没两个之后,Y轴递增
                        YY = cardContr.Bottom + Application.GetMinRealAverage(15);
                        YY = cardContr.Bottom + this.GetPictrueRealSize(15);
                    }
                    //控件记录到缓存中
                    this.dicSceneCardControl[sceneUi.Id] = cardContr;
                    if (contrCount == listScene.Count)
                    {
                        //调整桌布高度
                        listView.AdjustTableHeight();
                        if (contrCount > 4)
                        {
                            bodyFrameLayout.Height = listSceneBackContr.GetChildren(listSceneBackContr.ChildrenCount - 1).Bottom;
                            listSceneBackContr.Height = bodyFrameLayout.Height;
                            this.listBodyContr.frameTable.Height = bodyFrameLayout.Bottom;
                        }
                        HdlThreadLogic.Current.RunThread(() =>
                        {
                            //设置目前场景的延迟状态
                            this.SetSceneDelayTime(listView);
                            this.SetSceneDelayTime(listSceneBackContr);
                        });
                    }
                });
                System.Threading.Thread.Sleep(50);
                if (contrCount > 6)
                {
                    //让它呈现一种一次性显示出来的效果
                    System.Threading.Thread.Sleep(50);
                }
            }
        }
@@ -845,35 +914,29 @@
        /// </summary>
        private void ShowNoSceneTip()
        {
            var noScene = new Button
            {
                Y = Application.GetRealHeight(69),
                Width = Application.GetMinRealAverage(683),
                Height = Application.GetMinRealAverage(392),
                Gravity = Gravity.CenterHorizontal,
                UnSelectedImagePath = "Item/NoFunction.png"
            };
            bodyFrameLayout.AddChidren(noScene);
            var noScenceTip = new Button()
            {
                Y = noScene.Bottom,
                Height = Application.GetRealHeight(200),
                Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n"),
                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
                TextAlignment = TextAlignment.Center,
                IsMoreLines = true
            };
            bodyFrameLayout.AddChidren(noScenceTip);
            var picNoFunc = new PicViewControl(683, 392);
            picNoFunc.Y = Application.GetRealHeight(69);
            picNoFunc.Gravity = Gravity.CenterHorizontal;
            picNoFunc.UnSelectedImagePath = "Item/NoFunction.png";
            bodyFrameLayout.AddChidren(picNoFunc);
            var btnTip = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(200), false);
            btnTip.Y = picNoFunc.Bottom;
            btnTip.Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n");
            btnTip.TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
            btnTip.TextAlignment = TextAlignment.Center;
            btnTip.IsMoreLines = true;
            bodyFrameLayout.AddChidren(btnTip);
        }
        /// <summary>
        /// 设置场景的延迟状态
        /// </summary>
        /// <param name="listView"></param>
        private async void SetSceneDelayTime(VerticalFrameControl listView)
        /// <param name="listSceneBackContr"></param>
        private async void SetSceneDelayTime(FrameLayout listSceneBackContr)
        {
            await System.Threading.Tasks.Task.Delay(1500);
            if (listView.Parent == null)
            if (listSceneBackContr.Parent == null)
            {
                //控件已经被移除
                return;
@@ -884,7 +947,7 @@
            {
                return;
            }
            if (listView.Parent == null)
            if (listSceneBackContr.Parent == null)
            {
                //控件已经被移除
                return;
@@ -970,14 +1033,19 @@
                }
            }
            //去找一下这个控件的列表容器
            var listView = deleteContr.Parent.Parent as VerticalFrameControl;
            var listView = deleteContr.Parent as FrameLayout;
            //删除掉那张卡片的主键
            deleteContr.RemoveFromParent();
            this.dicSceneCardControl.Remove(deleteId);
            //调整桌布高度
            listView?.AdjustTableHeight();
            if (listView.ChildrenCount >= 4)
            {
                bodyFrameLayout.Height = listView.GetChildren(listView.ChildrenCount - 1).Bottom;
                listView.Height = bodyFrameLayout.Height;
                this.listBodyContr.frameTable.Height = bodyFrameLayout.Bottom;
            }
        }
        #endregion
@@ -1068,6 +1136,11 @@
                    {
                        //刷新卡片信息
                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
                        if (report.DeviceStatusReport.CluterID == 513 && report.DeviceStatusReport.AttriBute[0].AttributeId == 28)
                        {
                            //空调是特殊的,它的开关是属性上报来着.已经接收到网关的反馈
                            this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
                        }
                        this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
                    }
                }, ShowErrorMode.NO);
@@ -1144,7 +1217,7 @@
        /// </summary>
        private void ShowSelectFloorForm(NormalViewControl btnFloor)
        {
            var floorFL = new Device.Category.SelectFloor();
            var floorFL = new Category.SelectFloorForm();
            this.AddChidren(floorFL);
            floorFL.Init(35, 153);
            floorFL.changeFloor = true;