protected override void OnDetached() { var renderer = Container as IVisualElementRenderer; if (renderer?.Element != null) { // Disposeされているかの判定 _view.Click -= OnClick; _view.Touch -= View_Touch; _view.LongClick -= OnLongClick; if (_useRipple) { RemoveRipple(); } } _command = null; _commandParameter = null; _longCommand = null; _longCommandParameter = null; _orgDrawable = null; _view = null; _rippleListener?.Dispose(); _rippleListener = null; _rippleOverlay?.Dispose(); _rippleOverlay = null; _layer?.Dispose(); _layer = null; _ripple?.Dispose(); _ripple = null; }
void RemoveRipple() { if (Element is Layout) { var viewgrp = _view as ViewGroup; viewgrp.RemoveOnLayoutChangeListener(_rippleListener); _rippleListener.Dispose(); viewgrp.RemoveView(_rippleOverlay); _rippleOverlay.Dispose(); _rippleOverlay = null; } else { _view.Background = _orgDrawable; _orgDrawable = null; } _ripple?.Dispose(); _ripple = null; }