using asap.core; using EnhancedUI.EnhancedScroller; using EventPartnerGather; using UniRx; using UnityEngine; using UnityEngine.UI; namespace UI.PartnerGather.ScrollItems { public class EventPartnerGatherScrollViewAutoMatch : EnhancedScrollerCellView { public BtnSwitch btnSwitch; public GameObject bgLight; public GameObject textTab1; public GameObject textTab2; public Button btnOff; private CompositeDisposable _disposables = new(); private AutoMatchState _state; private Button _btnSwitchButton; private bool _hostReady; /// /// 宿主在 GetCellView 绑定后调用:应用存档/业务状态并解锁交互。列表回收复用后每次展示都会 OnEnable 加锁,须再次调用。 /// public void ApplyHostBinding(AutoMatchState state) { ELog($"ApplyHostBinding state={state}"); _hostReady = true; _state = state; UpdateState(_state); SetInteractionLocked(false); // BtnSwitch.OnEnable 每轮会 AddListener,回收复用后叠多条;GetCellView 在 OnEnable 之后调用,此处收口为单条 if (btnSwitch) btnSwitch.RemoveAndReAddOnListener(); } private void Awake() { if (btnSwitch) _btnSwitchButton = btnSwitch.GetComponent