protected override void OnDetached() { if (effect?.Element == null) { return; } try { if (accessibilityManager != null) { accessibilityManager.RemoveAccessibilityStateChangeListener(accessibilityListener); accessibilityManager.RemoveTouchExplorationStateChangeListener(accessibilityListener); accessibilityListener.Dispose(); accessibilityManager = null; accessibilityListener = null; } if (View != null) { View.LayoutChange -= OnLayoutChange; View.Touch -= OnTouch; View.Click -= OnClick; if (Build.VERSION.SdkInt >= BuildVersionCodes.M && View.Foreground == ripple) { View.Foreground = null; } } effect.Element = null; effect = null; if (rippleView != null) { rippleView.Pressed = false; rippleView.Background = null; Group?.RemoveView(rippleView); rippleView.Dispose(); rippleView = null; } ripple?.Dispose(); ripple = null; } catch (ObjectDisposedException) { // Suppress exception } isHoverSupported = false; }
protected override void OnDetached() { if (effect?.Element == null) { return; } try { if (accessibilityManager != null) { accessibilityManager.RemoveAccessibilityStateChangeListener(accessibilityListener); accessibilityManager.RemoveTouchExplorationStateChangeListener(accessibilityListener); accessibilityListener.Dispose(); accessibilityManager = null; accessibilityManager = null; } if (View != null) { View.LayoutChange -= LayoutChange; View.Touch -= OnTouch; View.Click -= OnClick; } effect.Element = null; effect = null; if (viewOverlay != null) { if (Group != null) { Group.RemoveView(viewOverlay); } viewOverlay.Pressed = false; viewOverlay.Foreground = null; viewOverlay.Dispose(); ripple?.Dispose(); } } catch (ObjectDisposedException) { // Suppress exception } isHoverSupported = false; }
protected override void OnDetached() { if (_effect?.Control == null) { return; } try { if (_accessibilityManager != null) { _accessibilityManager.RemoveAccessibilityStateChangeListener(_accessibilityListener); _accessibilityManager.RemoveTouchExplorationStateChangeListener(_accessibilityListener); _accessibilityListener.Dispose(); _accessibilityManager = null; _accessibilityManager = null; } if (View != null) { View.LayoutChange -= LayoutChange; View.Touch -= OnTouch; View.Click -= OnClick; } _effect.Control = null; _effect = null; if (_viewOverlay != null) { if (Group != null) { Group.RemoveView(_viewOverlay); } _viewOverlay.Pressed = false; _viewOverlay.Foreground = null; _viewOverlay.Dispose(); _ripple?.Dispose(); } } catch (ObjectDisposedException) { //suppress exception } _isHoverSupported = false; }