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
}
}