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 { private UGList _list; protected override void OnInitialize() { _list = UGListCreateHelper.Create(baseui.ScrollViewTestList); _list.RegisterItemRender(); 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 CreateTestDataList(int count) { List testDataList = new List(count); for (int i = 0; i < count; i++) { testDataList.Add(new TestData() { Name = $"TestProp:{i}" }); } return testDataList; } private void SetListAndFocusFirst(List dataList) { _list.Data = dataList; FocusFirstItemAsync().Forget(); } private async UniTaskVoid FocusFirstItemAsync() { await UniTask.NextFrame(); _list.RecyclerView.TryFocusIndex(0); } private void OnTestClick() { GameApp.UI.ShowUISync(); } }