主界面相关
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
// 本脚本只在不存在时会生成一次。已存在不会再次生成覆盖
|
||||
|
||||
using System.Collections.Generic;
|
||||
using FairyGUI;
|
||||
using UnityEngine;
|
||||
using NBC;
|
||||
using UIPanel = NBC.UIPanel;
|
||||
|
||||
namespace NBF
|
||||
{
|
||||
@@ -9,20 +12,80 @@ namespace NBF
|
||||
{
|
||||
public override string UIPackName => "Main";
|
||||
public override string UIResName => "HomePanel";
|
||||
private string[] PageNames = new[] { "HomeMainPage", "HomeActivityPage", "HomeRankPage" };
|
||||
|
||||
private List<HomePageBase> _pages = new List<HomePageBase>();
|
||||
|
||||
private HomePageBase _currentPage;
|
||||
|
||||
private List<TabListData> tabList = new List<TabListData>();
|
||||
|
||||
protected override void OnInit()
|
||||
{
|
||||
base.OnInit();
|
||||
foreach (var group in PageNames)
|
||||
{
|
||||
var tab = new TabListData
|
||||
{
|
||||
Name = group
|
||||
};
|
||||
tabList.Add(tab);
|
||||
}
|
||||
|
||||
|
||||
Menu.OnTabChange += ChangeTab;
|
||||
}
|
||||
|
||||
protected override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
Menu.SetTabs(tabList);
|
||||
ChangeTab(0);
|
||||
}
|
||||
|
||||
#region Tab切换
|
||||
|
||||
private void ChangeTab(int index)
|
||||
{
|
||||
if (index < 0) return;
|
||||
Log.Info($"Change tab index={index}");
|
||||
foreach (var page in _pages)
|
||||
{
|
||||
page.Hide();
|
||||
}
|
||||
|
||||
var nowPage = GetPage(index);
|
||||
if (nowPage != null)
|
||||
{
|
||||
nowPage.Show();
|
||||
_currentPage = nowPage;
|
||||
}
|
||||
}
|
||||
|
||||
private HomePageBase GetPage(int index)
|
||||
{
|
||||
var page = _pages.Find(t => t.Page == index);
|
||||
if (page == null)
|
||||
{
|
||||
var pageName = PageNames[index];
|
||||
var pageObject = UIPackage.CreateObject(UIPackName, pageName);
|
||||
if (pageObject is HomePageBase homePage)
|
||||
{
|
||||
Pages.AddChild(homePage);
|
||||
_pages.Add(homePage);
|
||||
return homePage;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
protected override void OnHide()
|
||||
{
|
||||
base.OnHide();
|
||||
}
|
||||
|
||||
protected override void OnDestroy()
|
||||
|
||||
Reference in New Issue
Block a user