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