AlicizaX/Client/Assets/Scripts/Hotfix/GameLogic/UI/UILoadUpdate.cs
2026-04-01 20:27:22 +08:00

82 lines
2.0 KiB
C#

using System.Collections.Generic;
using AlicizaX;
using AlicizaX.Resource.Runtime;
using AlicizaX.UI;
using AlicizaX.UI.Runtime;
using Cysharp.Threading.Tasks;
using Game.UI;
using GameLogic.UI;
using UnityEngine;
public class TestData : ISimpleViewData
{
public string Name;
}
[UIUpdate]
[Window(UILayer.UI, false, 3)]
public class UILoadUpdate : UITabWindow<ui_UILoadUpdateWindow>
{
private UGList<TestData> _list;
protected override void OnInitialize()
{
_list = UGListCreateHelper.Create<TestData>(baseui.ScrollViewTestList);
_list.RegisterItemRender<TestScrollItemRender>();
baseui.ImgBackGround.color = Color.gray;
baseui.BtnTest.onClick.AddListener(OnTestClick);
SetListAndFocusFirst(CreateTestDataList(1000000));
baseui.BtnQTest.onClick.AddListener(OnBtnQTestClick);
baseui.BtnEscTest.onClick.AddListener(OnBtnEscTestClick);
baseui.BtnETest.onClick.AddListener(OnBtnETestClick);
}
private void OnBtnETestClick()
{
SetListAndFocusFirst(CreateTestDataList(4000));
Log.Info("Btn E Click");
}
private void OnBtnEscTestClick()
{
Log.Info("Btn Esc Click");
CloseSelf();
}
private void OnBtnQTestClick()
{
SetListAndFocusFirst(CreateTestDataList(30000));
Log.Info("Btn Q Click");
}
private static List<TestData> CreateTestDataList(int count)
{
List<TestData> testDataList = new List<TestData>(count);
for (int i = 0; i < count; i++)
{
testDataList.Add(new TestData() { Name = $"TestProp:{i}" });
}
return testDataList;
}
private void SetListAndFocusFirst(List<TestData> dataList)
{
_list.Data = dataList;
FocusFirstItemAsync().Forget();
}
private async UniTaskVoid FocusFirstItemAsync()
{
await UniTask.NextFrame();
_list.RecyclerView.TryFocusIndex(0);
}
private void OnTestClick()
{
GameApp.UI.ShowUISync<UILogicTestAlert>();
}
}