黄学彪
2020-04-02 9904031f5291daaf56985146bb671f25e18ebbdf
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs
@@ -100,7 +100,8 @@
            frameTemp.Width = ControlCommonResourse.XXLeft / 2;
            scrolContr.AddChidren(frameTemp);
            int defultIndex = 0;
            var btnTempWidth = new ButtonBase();
            btnTempWidth.TextSize = 12;
            if (this.dicRoom != null)
            {
                //初始化房间模式的控件
@@ -110,9 +111,11 @@
                    {
                        //初始值
                        oldSelectKeys = keys;
                        defultIndex = keys;
                    }
                    this.DoInitControl(scrolContr, keys, dicRoom[keys].Name);
                    //计算字符的真实宽度
                    btnTempWidth.Text = dicRoom[keys].Name;
                    this.DoInitControl(scrolContr, keys, dicRoom[keys].Name, btnTempWidth.GetRealWidthByText());
                }
            }
            else
@@ -125,14 +128,15 @@
                    {
                        //初始值
                        oldSelectKeys = keys;
                        defultIndex = index;
                    }
                    this.DoInitControl(scrolContr, keys, Language.StringByID(keys));
                    //计算字符的真实宽度
                    btnTempWidth.Text = Language.StringByID(keys);
                    this.DoInitControl(scrolContr, keys, btnTempWidth.Text, btnTempWidth.GetRealWidthByText());
                    index++;
                }
            }
            //让控件滑动到指定的索引位置
            scrolContr.ScrollToViewIndex(defultIndex);
            scrolContr.ScrollToViewIndex(oldSelectKeys + 1);
        }
        /// <summary>
@@ -141,14 +145,24 @@
        /// <param name="scrolContr">列表控件</param>
        /// <param name="keys">字典的主键</param>
        /// <param name="text">显示文本</param>
        private void DoInitControl(HorizontalScrolViewLayout scrolContr, int keys, string text)
        /// <param name="textWidth">文本真实宽度</param>
        private void DoInitControl(HorizontalScrolViewLayout scrolContr, int keys, 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 = Application.GetRealWidth(255);
            frameBack.Width = realWidth;
            if (oldSelectKeys == keys)
            {
                frameBack.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
@@ -160,7 +174,7 @@
            }
            scrolContr.AddChidren(frameBack);
            //文字
            var btnText = new NormalViewControl(frameBack.Width - (int)(frameBack.Height * 0.47), frameBack.Height, false);
            var btnText = new NormalViewControl(textWidth, frameBack.Height, false);
            btnText.Gravity = Gravity.CenterHorizontal;
            btnText.Text = text;
            btnText.TextSize = 12;
@@ -256,10 +270,16 @@
            }
            else if (keys != string.Empty)
            {
                int i = 0;
                int textId = Convert.ToInt32(keys);
                if (dicDevice.ContainsKey(textId) == true)
                foreach (int rId in dicDevice.Keys)
                {
                    oldSelectKeys = textId;
                    if (rId == textId)
                    {
                        oldSelectKeys = i;
                        break;
                    }
                    i++;
                }
            }
        }