protected LayoutObserver(View view, bool treeObserver) { _viewReference = ServiceProvider.WeakReferenceFactory(view); if (!treeObserver && Build.VERSION.SdkInt >= BuildVersionCodes.Honeycomb) view.AddOnLayoutChangeListener(this); else { var viewTreeObserver = view.ViewTreeObserver; if (viewTreeObserver.IsAlive) viewTreeObserver.AddOnGlobalLayoutListener(this); } }
void AddRipple() { if (Element is Layout) { _rippleOverlay = new FrameLayout(Container.Context); _rippleOverlay.LayoutParameters = new ViewGroup.LayoutParams(-1, -1); _rippleListener = new ContainerOnLayoutChangeListener(_rippleOverlay); _view.AddOnLayoutChangeListener(_rippleListener); (_view as ViewGroup).AddView(_rippleOverlay); _rippleOverlay.BringToFront(); _rippleOverlay.Foreground = CreateRipple(Color.Accent.ToAndroid()); } else { _orgDrawable = _view.Background; _view.Background = CreateRipple(Color.Accent.ToAndroid()); } }