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