AlicizaX/Client/Assets/Scripts/Hotfix/GameLogic/UI/UILoadUpdate.cs
2026-04-03 16:41:29 +08:00

84 lines
2.2 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;
using UnityEngine.EventSystems;
public class TestData : IMixedViewData
{
public string Name;
public string TemplateName { get; set; }
}
[UIUpdate]
[Window(UILayer.UI, false, 3)]
public class UILoadUpdate : UITabWindow<ui_UILoadUpdateWindow>
{
private UGMixedList<TestData> _list;
protected override void OnInitialize()
{
_list = UGListCreateHelper.CreateMixed<TestData>(baseui.ScrollViewTestList);
_list.RegisterItemRender<ImageScrollItemRender>(nameof(ImageViewHolder));
_list.RegisterItemRender<TextScrollItemRender>(nameof(TextViewHolder));
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()
{
Log.Info("Btn E Click");
}
private void OnBtnEscTestClick()
{
Log.Info("Btn Esc Click");
CloseSelf();
}
private void OnBtnQTestClick()
{
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++)
{
var prefabName = i % 2 == 0 ? nameof(TextViewHolder) : nameof(ImageViewHolder);
testDataList.Add(new TestData() { Name = $"TestProp:{i}", TemplateName = prefabName });
}
return testDataList;
}
private void SetListAndFocusFirst(List<TestData> dataList)
{
_list.Data = dataList;
FocusFirstItemAsync().Forget();
}
private async UniTaskVoid FocusFirstItemAsync()
{
await UniTask.NextFrame();
_list.RecyclerView.TryFocusEntry(MoveDirection.Down,true);
}
private void OnTestClick()
{
GameApp.UI.ShowUISync<UILogicTestAlert>();
}
}