using System;
|
using System.Collections.Generic;
|
using Shared.Common;
|
using System.Text;
|
using Shared.Phone.UserCenter;
|
|
namespace Shared.Phone.UserView
|
{
|
/// <summary>
|
/// User page.
|
/// </summary>
|
public class UserPage : FrameLayout
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 当前选择的菜单
|
/// </summary>
|
private MenuSelectEnum nowSelectMenu = MenuSelectEnum.A未选择;
|
/// <summary>
|
/// 用户界面
|
/// </summary>
|
private static UserPage userMenuPage = null;
|
/// <summary>
|
/// 用户界面
|
/// </summary>
|
/// <value>The instance.</value>
|
public static UserPage Instance
|
{
|
get
|
{
|
if (userMenuPage == null)
|
{
|
userMenuPage = new UserPage { };
|
}
|
return userMenuPage;
|
}
|
}
|
|
/// <summary>
|
/// 用户主体界面(中间部分)
|
/// </summary>
|
private NormalFrameLayout bodyFrameView = null;
|
/// <summary>
|
/// 界面缓存(2020.05.07:切换时不移除界面,直接隐藏)
|
/// </summary>
|
private List<EditorCommonForm> listForm = new List<EditorCommonForm>() { null, null, null };
|
/// <summary>
|
/// 控件缓存(看不懂的话,不要动它)
|
/// </summary>
|
private List<ButtonBase> listButton = new List<ButtonBase>();
|
/// <summary>
|
/// 如果设置此变量为true,则在单击底部菜单时,强制无条件全部刷新
|
/// </summary>
|
public bool RefreshAllForm = false;
|
/// <summary>
|
/// 刷新主页
|
/// </summary>
|
public bool RefreshMainPageForm = false;
|
/// <summary>
|
/// 刷新分类
|
/// </summary>
|
public bool RefreshCategoryForm = false;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
public UserPage()
|
{
|
BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor;
|
//添加App的经纬度上报事件
|
HdlOtherFunctionLogic.Current.AddAppLatAndLonEvent();
|
}
|
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
public void InitPage()
|
{
|
if (this.ChildrenCount > 0)
|
{
|
return;
|
}
|
#if iOS
|
if (Shared.Application.IsFullScreen == true)
|
{
|
//高版本的苹果机型,屏幕底部会有一个黑色的杠
|
ControlCommonResourse.BottomFrameHeight = Application.GetRealHeight(180);
|
}
|
#endif
|
//用户主体界面(中间部分)
|
this.bodyFrameView = new NormalFrameLayout();
|
bodyFrameView.Height = this.Height - HdlControlResourse.BottomFrameHeight;
|
bodyFrameView.BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor;
|
this.AddChidren(bodyFrameView);
|
|
//用户菜单界面(底部部分)
|
var bottomMenuFrame = new FrameLayout();
|
bottomMenuFrame.Gravity = Gravity.BottomCenter;
|
bottomMenuFrame.Height = HdlControlResourse.BottomFrameHeight;
|
bottomMenuFrame.BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCBottomColor;
|
this.AddChidren(bottomMenuFrame);
|
//底部菜单的头部线
|
var bottomLine = new NormalViewControl(bottomMenuFrame.Width, HdlControlResourse.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);
|
};
|
}
|
|
/// <summary>
|
/// 刷新控件
|
/// </summary>
|
public void ReFreshControl()
|
{
|
//这里做全刷新处理
|
this.listForm = new List<EditorCommonForm>() { null, null, null };
|
this.bodyFrameView.RemoveAll();
|
|
this.BottomMenuClickEvent(MenuSelectEnum.A主页, false);
|
}
|
|
#endregion
|
|
#region ■ 一般方法___________________________
|
|
/// <summary>
|
/// 底部菜单的点击事件
|
/// </summary>
|
/// <param name="selectEnum">菜单选择枚举</param>
|
/// <param name="handClick">是否是手动点击</param>
|
private void BottomMenuClickEvent(MenuSelectEnum selectEnum, bool handClick)
|
{
|
if (this.RefreshAllForm == false && selectEnum == this.nowSelectMenu && handClick == true)
|
{
|
//手动点击同一个菜单,则不做处理
|
return;
|
}
|
|
//如果强制指定刷新界面的话
|
if (this.RefreshAllForm == true)
|
{
|
//全部刷新
|
this.listForm = new List<EditorCommonForm>() { null, null, null };
|
this.bodyFrameView.RemoveAll();
|
|
this.RefreshAllForm = false;
|
}
|
|
this.nowSelectMenu = selectEnum;
|
|
//主页
|
if (selectEnum == MenuSelectEnum.A主页)
|
{
|
//左滑菜单可
|
CommonPage.Instance.IsDrawerLockMode = false;
|
if (this.RefreshMainPageForm == true)
|
{
|
//刷新主页
|
listForm[0]?.CloseForm();
|
listForm[0] = null;
|
this.RefreshMainPageForm = 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 (this.RefreshCategoryForm == true)
|
{
|
//刷新分类
|
listForm[1]?.CloseForm();
|
listForm[1] = null;
|
this.RefreshCategoryForm = false;
|
}
|
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();
|
}
|
|
/// <summary>
|
/// 设置全部控件的各种状态状态
|
/// </summary>
|
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;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 强制显示自动化列表界面
|
/// </summary>
|
public void ShowCategoryAutoListForm()
|
{
|
//关闭全部界面,直到主页为止
|
HdlFormLogic.Current.CloseAllOpenForm(null, false);
|
//强制显示自动化列表界面
|
HdlUserCenterResourse.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();
|
}
|
|
/// <summary>
|
/// 获取当前激活的界面
|
/// </summary>
|
/// <returns></returns>
|
public EditorCommonForm GetNowActionForm()
|
{
|
int index = ((int)this.nowSelectMenu) - 1;
|
if (index != -1)
|
{
|
//调用此界面的激活函数
|
return this.listForm[index];
|
}
|
return null;
|
}
|
|
#endregion
|
|
#region ■ 结构体_____________________________
|
|
/// <summary>
|
/// 菜单选择的枚举
|
/// </summary>
|
private enum MenuSelectEnum
|
{
|
A未选择 = 0,
|
A主页 = 1,
|
A分类 = 2,
|
A个人中心 = 3
|
}
|
|
#endregion
|
}
|
}
|