陈嘉乐
2020-09-02 652243206427f35a256400a149a1734085824cb9
ZigbeeApp/Shared/Phone/Category/SelectFloorForm.cs
@@ -4,14 +4,10 @@
namespace Shared.Phone.Category
{
    public class SelectFloorForm : FrameLayout
    public class SelectFloorForm : UserCenter.FrameLayoutBase
    {
        public Action<string> FloorAction;
        /// <summary>
        /// 是否切换为当前楼层
        /// </summary>
        public bool changeFloor = true;
        /// <summary>
        /// 当前传过来的floorid
        /// </summary>
@@ -43,8 +39,8 @@
            {
                X = Application.GetRealWidth(x),
                Y = Application.GetRealHeight(y),
                Width = Application.GetMinRealAverage(449),
                Height = Application.GetMinRealAverage(773),
                Width = this.GetPictrueRealSize(449),
                Height = this.GetPictrueRealSize(773),
                UnSelectedImagePath = "Floor/SelectFloor_Left_4.png"
            };
            dialog.AddChidren(bg);
@@ -53,16 +49,16 @@
            {
                X = Application.GetRealWidth(x),
                Y = Application.GetRealHeight(y + 23),
                Width = Application.GetMinRealAverage(449),
                Height = Application.GetMinRealAverage(773 - 23)
                Width = this.GetPictrueRealSize(449),
                Height = this.GetPictrueRealSize(773 - 23)
            };
            dialog.AddChidren(backgroundFL);
            var tip = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetMinRealAverage(350),
                Height = Application.GetMinRealAverage(150),
                Width = this.GetPictrueRealSize(350),
                Height = this.GetPictrueRealSize(150),
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.SelectFloor,
@@ -74,13 +70,14 @@
            var floorLayout = new VerticalScrolViewLayout
            {
                Y = tip.Bottom,
                Width = Application.GetMinRealAverage(449),
                Height = Application.GetMinRealAverage(600),
                Width = this.GetPictrueRealSize(449),
                Height = this.GetPictrueRealSize(600),
                VerticalScrollBarEnabled = false
            };
            backgroundFL.AddChidren(floorLayout);
            var floorCount = Config.Instance.Home.FloorDics.Count;
            var dicFloor = UserCenter.HdlRoomLogic.Current.GetFloorSortList();
            int floorCount = dicFloor.Count;
            if (floorCount > 0)
            {
@@ -97,21 +94,21 @@
                if (floorCount > 5)
                {
                    bg.UnSelectedImagePath = $"Floor/SelectFloor_{directStr}_5.png";
                    bg.Height = Application.GetMinRealAverage(150*6+23);
                    backgroundFL.Height = Application.GetMinRealAverage(150 * 6);
                    floorLayout.Height = Application.GetMinRealAverage(150 * 5);
                    bg.Height = this.GetPictrueRealSize(150*6+23);
                    backgroundFL.Height = this.GetPictrueRealSize(150 * 6);
                    floorLayout.Height = this.GetPictrueRealSize(150 * 5);
                }
                else
                {
                    bg.UnSelectedImagePath = $"Floor/SelectFloor_{directStr}_{floorCount}.png";
                    bg.Height = Application.GetMinRealAverage(150 * (floorCount + 1)+23);
                    backgroundFL.Height = Application.GetMinRealAverage(150 * (floorCount + 1));
                    floorLayout.Height = Application.GetMinRealAverage(150 * floorCount);
                    bg.Height = this.GetPictrueRealSize(150 * (floorCount + 1)+23);
                    backgroundFL.Height = this.GetPictrueRealSize(150 * (floorCount + 1));
                    floorLayout.Height = this.GetPictrueRealSize(150 * floorCount);
                }
                foreach (var floor in Config.Instance.Home.FloorDics)
                foreach (var floor in dicFloor.Keys)
                {
                    AddFloor(floorLayout, floor);
                    AddFloor(floorLayout, floor, dicFloor[floor]);
                }
            }
        }
@@ -120,50 +117,20 @@
        /// AddFloor
        /// </summary>
        /// <param name="verticalScrolView"></param>
        private void AddFloor(VerticalScrolViewLayout verticalScrolView, KeyValuePair<string, string> floor,bool isLast=false)
        private void AddFloor(VerticalScrolViewLayout verticalScrolView, string floorId, string floorName)
        {
            var frow = new Device.CommonForm.LeftIconButtonRow(449, 150);
            frow.Width = Application.GetMinRealAverage(449);
            frow.Height = Application.GetMinRealAverage(150);
            frow.Tag = floor.Key;
            frow.Init("Floor/Floor.png", "Floor/FloorSelected.png", floor.Value);
            verticalScrolView.AddChidren(frow);
            frow.Width = this.GetPictrueRealSize(449);
            frow.Height = this.GetPictrueRealSize(150);
            frow.Init("Floor/Floor.png", "Floor/FloorSelected.png", floorName);
            verticalScrolView.AddChidren(frow);
            frow.IsSelected = floorId == this.CurFloorId;
            if (string.IsNullOrEmpty(CurFloorId))
            frow.ButtonClickEvent += (sender, e) =>
            {
                if (Config.Instance.Home.CurrentFloorId == floor.Key)
                {
                    frow.IsSelected = true;
                }
            }
            else
            {
                if (CurFloorId == floor.Key)
                {
                    frow.IsSelected = true;
                }
            }
            frow.ButtonClickEvent += SelectFloor_MouseUpEvent;
        }
        /// <summary>
        /// SelectFloor_MouseUpEvent
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="mouseEventArgs"></param>
        private void SelectFloor_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
        {
            (sender as Device.CommonForm.LeftIconButtonRow).IsSelected = true;
            if (changeFloor)
            {
                Config.Instance.Home.CurrentFloorId = (sender as Device.CommonForm.LeftIconButtonRow).Tag.ToString();
                Config.Instance.Home.Save(false);
                UserCenter.HdlRoomLogic.Current.RefreshRoomListView();
            }
            RemoveView();
            FloorAction?.Invoke((sender as Device.CommonForm.LeftIconButtonRow).Tag.ToString());
                RemoveView();
                FloorAction?.Invoke(floorId);
            };
        }
        /// <summary>