Пример #1
0
        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;
        }
Пример #2
0
        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;
        }
Пример #3
0
        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;
        }