using System; using System.Collections.Generic; using Shared.Common; using System.Text; using Shared.Phone.UserCenter; namespace Shared.Phone.UserView { /// /// User page. /// public class UserPage : FrameLayout { #region ■ 变量声明___________________________ /// /// 当前选择的菜单 /// private MenuSelectEnum nowSelectMenu = MenuSelectEnum.A未选择; /// /// 用户界面 /// private static UserPage userMenuPage = null; /// /// 用户界面 /// /// The instance. public static UserPage Instance { get { if (userMenuPage == null) { userMenuPage = new UserPage { }; } return userMenuPage; } } /// /// 用户主体界面(中间部分) /// private NormalFrameLayout bodyFrameView = null; /// /// 界面缓存(2020.05.07:切换时不移除界面,直接隐藏) /// private List listForm = new List() { null, null, null }; /// /// 控件缓存(看不懂的话,不要动它) /// private List listButton = new List(); /// /// 如果设置此变量为true,则在单击底部菜单时,强制无条件全部刷新 /// public bool RefreshForm = false; #endregion #region ■ 初始化_____________________________ /// /// 初始化 /// public UserPage() { BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor; Shared.Application.LocationAction += (lon, lat) => { Login.AccountLogic.Instance.ReceiveAppLatAndLon(lon.ToString(), lat.ToString()); }; } /// /// 初始化 /// public void InitPage() { if (this.ChildrenCount > 0) { return; } #if iOS if (Shared.Application.IsFullScreen == true) { //高版本的苹果机型,屏幕底部会有一个黑色的杠 ControlCommonResourse.BottomFrameHeight = Application.GetRealHeight(242); } #endif //用户主体界面(中间部分) this.bodyFrameView = new NormalFrameLayout(); bodyFrameView.Height = this.Height - UserCenter.ControlCommonResourse.BottomFrameHeight; bodyFrameView.BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor; this.AddChidren(bodyFrameView); //用户菜单界面(底部部分) var bottomMenuFrame = new FrameLayout(); bottomMenuFrame.Gravity = Gravity.BottomCenter; bottomMenuFrame.Height = ControlCommonResourse.BottomFrameHeight; bottomMenuFrame.BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCBottomColor; this.AddChidren(bottomMenuFrame); //底部菜单的头部线 var bottomLine = new NormalViewControl(bottomMenuFrame.Width, ControlCommonResourse.BottomLineHeight, false); bottomLine.BackgroundColor = 0xffc8c8c9; bottomMenuFrame.AddChidren(bottomLine); //主页容器 var frameHomePage = new FrameLayout(); frameHomePage.Width = bottomMenuFrame.Width / 3; frameHomePage.Height = bottomMenuFrame.Height; bottomMenuFrame.AddChidren(frameHomePage); //主页图标 var btnHomeIcon = new PicViewControl(138, 98); btnHomeIcon.Y = Application.GetRealHeight(3); btnHomeIcon.UnSelectedImagePath = "Navigation/Home.png"; btnHomeIcon.SelectedImagePath = "Navigation/HomeSelected.png"; btnHomeIcon.Gravity = Gravity.CenterHorizontal; frameHomePage.AddChidren(btnHomeIcon); this.listButton.Add(btnHomeIcon); btnHomeIcon.ButtonClickEvent += (sender, e) => { this.BottomMenuClickEvent(MenuSelectEnum.A主页, true); }; //主页 var btnHomeName = new NormalViewControl(btnHomeIcon.Width, Application.GetRealHeight(40), false); btnHomeName.Y = btnHomeIcon.Bottom; btnHomeName.TextID = R.MyInternationalizationString.HomePage; btnHomeName.TextColor = Shared.Common.ZigbeeColor.Current.GXCTextBottomUnSelectedColor; btnHomeName.SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2; btnHomeName.TextSize = 10; btnHomeName.Gravity = Gravity.CenterHorizontal; btnHomeName.TextAlignment = TextAlignment.Center; frameHomePage.AddChidren(btnHomeName); this.listButton.Add(btnHomeName); btnHomeName.ButtonClickEvent += (sender, e) => { this.BottomMenuClickEvent(MenuSelectEnum.A主页, true); }; //分类容器 var frameCategory = new FrameLayout(); frameCategory.X = frameHomePage.Right; frameCategory.Width = bottomMenuFrame.Width / 3; frameCategory.Height = bottomMenuFrame.Height; bottomMenuFrame.AddChidren(frameCategory); //分类图标 var btnCategoryIcon = new PicViewControl(138, 98); btnCategoryIcon.Y = Application.GetRealHeight(3); btnCategoryIcon.UnSelectedImagePath = "Navigation/Category.png"; btnCategoryIcon.SelectedImagePath = "Navigation/CategorySelected.png"; btnCategoryIcon.Gravity = Gravity.CenterHorizontal; frameCategory.AddChidren(btnCategoryIcon); this.listButton.Add(btnCategoryIcon); btnCategoryIcon.ButtonClickEvent += (sender, e) => { this.BottomMenuClickEvent(MenuSelectEnum.A分类, true); }; //分类 var btnCategoryName = new NormalViewControl(btnCategoryIcon.Width, Application.GetRealHeight(40), false); btnCategoryName.Y = btnCategoryIcon.Bottom; btnCategoryName.TextID = R.MyInternationalizationString.Category; btnCategoryName.TextColor = Shared.Common.ZigbeeColor.Current.GXCTextBottomUnSelectedColor; btnCategoryName.SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2; btnCategoryName.TextSize = 10; btnCategoryName.Gravity = Gravity.CenterHorizontal; btnCategoryName.TextAlignment = TextAlignment.Center; frameCategory.AddChidren(btnCategoryName); this.listButton.Add(btnCategoryName); btnCategoryName.ButtonClickEvent += (sender, e) => { this.BottomMenuClickEvent(MenuSelectEnum.A分类, true); }; //我的容器 var frameSetting = new FrameLayout(); frameSetting.X = frameCategory.Right; frameSetting.Width = bottomMenuFrame.Width / 3; frameSetting.Height = bottomMenuFrame.Height; bottomMenuFrame.AddChidren(frameSetting); //我的图标 var btnSettingIcon = new PicViewControl(138, 98); btnSettingIcon.Y = Application.GetRealHeight(3); btnSettingIcon.UnSelectedImagePath = "Navigation/Setting.png"; btnSettingIcon.SelectedImagePath = "Navigation/SettingSelected.png"; btnSettingIcon.Gravity = Gravity.CenterHorizontal; frameSetting.AddChidren(btnSettingIcon); this.listButton.Add(btnSettingIcon); btnSettingIcon.ButtonClickEvent += (sender, e) => { this.BottomMenuClickEvent(MenuSelectEnum.A个人中心, true); }; //我的 var btnSettingName = new NormalViewControl(btnCategoryIcon.Width, Application.GetRealHeight(40), false); btnSettingName.Y = btnSettingIcon.Bottom; btnSettingName.TextID = R.MyInternationalizationString.Me; btnSettingName.TextColor = Shared.Common.ZigbeeColor.Current.GXCTextBottomUnSelectedColor; btnSettingName.SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2; btnSettingName.TextSize = 10; btnSettingName.Gravity = Gravity.CenterHorizontal; btnSettingName.TextAlignment = TextAlignment.Center; frameSetting.AddChidren(btnSettingName); this.listButton.Add(btnSettingName); btnSettingName.ButtonClickEvent += (sender, e) => { this.BottomMenuClickEvent(MenuSelectEnum.A个人中心, true); }; } /// /// 刷新控件 /// public void ReFreshControl() { //这里做全刷新处理 this.listForm = new List() { null, null, null }; this.bodyFrameView.RemoveAll(); this.BottomMenuClickEvent(MenuSelectEnum.A主页, false); } #endregion #region ■ 一般方法___________________________ /// /// 底部菜单的点击事件 /// /// 菜单选择枚举 /// 是否是手动点击 private void BottomMenuClickEvent(MenuSelectEnum selectEnum, bool handClick) { if (this.RefreshForm == false && selectEnum == this.nowSelectMenu && handClick == true) { //手动点击同一个菜单,则不做处理 return; } //如果强制指定刷新界面的话 if (this.RefreshForm == true) { //全部刷新 this.listForm = new List() { null, null, null }; this.bodyFrameView.RemoveAll(); this.RefreshForm = false; } this.nowSelectMenu = selectEnum; //主页 if (selectEnum == MenuSelectEnum.A主页) { //左滑菜单可 CommonPage.Instance.IsDrawerLockMode = false; if (listForm[0] == null) { var form = new MainPage.HomeMainPageForm(); this.bodyFrameView.AddChidren(form); form.ShowForm(); //加缓存 listForm[0] = form; } } else if (selectEnum == MenuSelectEnum.A分类) { //左滑菜单不可 CommonPage.Instance.IsDrawerLockMode = true; if (listForm[1] == null) { var form = new Category.CategoryMainForm(); this.bodyFrameView.AddChidren(form); form.ShowForm(); //加缓存 listForm[1] = form; } } else if (selectEnum == MenuSelectEnum.A个人中心) { //左滑菜单不可 CommonPage.Instance.IsDrawerLockMode = true; if (listForm[2] == null) { var form = new UserCenter.UserMain.UserMainForm(); this.bodyFrameView.AddChidren(form); form.ShowForm(); //加缓存 listForm[2] = form; } } //设置全部控件的各种状态状态 this.SetAllControlStatu(); } /// /// 设置全部控件的各种状态状态 /// private void SetAllControlStatu() { int index = (int)this.nowSelectMenu - 1; for (int i = 0; i < listForm.Count; i++) { if (i == index) { //当前选择的菜单的话,则全部可视 listForm[i].Visible = true; //控件图片和颜色变更 this.listButton[i * 2].IsSelected = true; this.listButton[i * 2 + 1].IsSelected = true; } else { //不是当前选择的菜单的话,全部不可视 if (listForm[i] != null) { listForm[i].Visible = false; } //控件图片和颜色变更 this.listButton[i * 2].IsSelected = false; this.listButton[i * 2 + 1].IsSelected = false; } } } /// /// 强制显示自动化列表界面 /// public void ShowCategoryAutoListForm() { //关闭全部界面,直到主页为止 UserCenterLogic.CloseAllOpenForm(); //强制显示自动化列表界面 UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = 2; this.nowSelectMenu = MenuSelectEnum.A分类; //左滑菜单不可 CommonPage.Instance.IsDrawerLockMode = true; if (listForm[1] == null) { var form = new Category.CategoryMainForm(); this.bodyFrameView.AddChidren(form); form.ShowForm(); //加缓存 listForm[1] = form; } else { ((Category.CategoryMainForm)listForm[1]).RefreshBodyView(); } //设置全部控件的各种状态状态 this.SetAllControlStatu(); } /// /// 获取当前激活的界面 /// /// public EditorCommonForm GetNowActionForm() { int index = ((int)this.nowSelectMenu) - 1; if (index != -1) { //调用此界面的激活函数 return this.listForm[index]; } return null; } #endregion #region ■ 结构体_____________________________ /// /// 菜单选择的枚举 /// private enum MenuSelectEnum { A未选择 = 0, A主页 = 1, A分类 = 2, A个人中心 = 3 } #endregion } }