From a7ce860f56b8ba66050674125ac2ad4e22608c3b Mon Sep 17 00:00:00 2001 From: LiRuoChen <571244399@qq.com> Date: Thu, 9 Apr 2026 10:04:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A1=B5=E9=9D=A2=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E6=B1=A0=E9=97=AE=E9=A2=98=EF=BC=8C=E5=90=8E=E7=BB=AD?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E9=80=BB=E8=BE=91=E7=9B=B4=E6=8E=A5=E8=87=AA?= =?UTF-8?q?=E5=B7=B1=E5=AE=9E=E7=8E=B0=E5=B0=B1=E8=A1=8C=EF=BC=8C=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=B8=AD=E4=B8=8D=E6=8F=90=E4=BE=9B=E5=A4=8D=E6=9D=82?= =?UTF-8?q?=E7=9A=84backup=E6=B5=81=E7=A8=8B=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/FlipPage/FlipPageComponentManager.cs | 25 +++-- .../FlipPage/XericFlipPageIndexVesselBase.cs | 91 ++++++------------- 2 files changed, 46 insertions(+), 70 deletions(-) diff --git a/Runtime/FlipPage/FlipPageComponentManager.cs b/Runtime/FlipPage/FlipPageComponentManager.cs index 14c25fc..2765db8 100644 --- a/Runtime/FlipPage/FlipPageComponentManager.cs +++ b/Runtime/FlipPage/FlipPageComponentManager.cs @@ -217,7 +217,7 @@ namespace XericUI.FlipPage protected override void Awake() { // 使用默认的 - HowToCreatPageInfo = () => AddPage(); + HowToCreatPageInfo = () => new PageComponentInfo(); base.Awake(); @@ -231,8 +231,13 @@ namespace XericUI.FlipPage buttoneEndPage.Target.onClick.AddListener(FlipPageToEnd); if (inputFieldFlipPageIndex.IsValidVessel()) // 翻到指定 inputFieldFlipPageIndex.Target.onValueChanged.AddListener(s => FlipPage(s)); - pageButtonPool.Init(); - + pageButtonPool.Initialize(); + pageButtonPool.joinOnRelease += o => + { + SwitchSelectableVesselType(o.GetComponent(), + button => button.onClick.RemoveAllListeners(), + toggle => toggle.onValueChanged.RemoveAllListeners()); + }; // 根�组件类型创建相关内容 // var prefabSelectable = pageButtonPool.Prefab.GetComponent(); } @@ -269,7 +274,6 @@ namespace XericUI.FlipPage RefreshPageIndeButtonState(); } - public override PageInfo AddPage(PageInfo pageInfo = null, bool isFirstOtherwiseLast = false) { @@ -334,11 +338,16 @@ namespace XericUI.FlipPage pageSelectButton.Add(pageIndexSelectable); SwitchSelectableVesselType(pageIndexSelectable.Target0, - button => { button.onClick.AddListener(() => FlipPage(pageInfo.pageNumber)); }, + button => + { + button.onClick.RemoveAllListeners(); + button.onClick.AddListener(() => FlipPage(pageInfo.pageNumber)); + }, toggle => { - toggle.isOn = pageInfo.pageNumber == currentPageIndex; + toggle.SetIsOnWithoutNotify(pageInfo.pageNumber == currentPageIndex); toggle.group = ToggleGroup; + toggle.onValueChanged.RemoveAllListeners(); toggle.onValueChanged.AddListener(b => { if (b) FlipPage(pageInfo.pageNumber); @@ -436,6 +445,8 @@ namespace XericUI.FlipPage } } + + /// /// 处��选对象类型.(如果�支�更多的类型,应优先改此方法,以便获得其他所有�置的编译器�示) /// @@ -443,7 +454,7 @@ namespace XericUI.FlipPage /// 如果是按钮 /// 如果是�选项 /// - protected static bool SwitchSelectableVesselType(Selectable selectable, + private static bool SwitchSelectableVesselType(Selectable selectable, Action