protected override void OnAttached() { effect = TouchEffect.PickFrom(Element); if (effect == null || effect.IsDisabled) { return; } effect.Element = (VisualElement)Element; if (effect.NativeAnimation) { var nativeControl = Container; if (string.IsNullOrEmpty(nativeControl.Name)) { nativeControl.Name = Guid.NewGuid().ToString(); } if (nativeControl.Resources.ContainsKey(pointerDownAnimationKey)) { pointerDownStoryboard = (Storyboard)nativeControl.Resources[pointerDownAnimationKey]; } else { pointerDownStoryboard = new Storyboard(); var downThemeAnimation = new PointerDownThemeAnimation(); Storyboard.SetTargetName(downThemeAnimation, nativeControl.Name); pointerDownStoryboard.Children.Add(downThemeAnimation); nativeControl.Resources.Add(new KeyValuePair <object, object>(pointerDownAnimationKey, pointerDownStoryboard)); } if (nativeControl.Resources.ContainsKey(pointerUpAnimationKey)) { pointerUpStoryboard = (Storyboard)nativeControl.Resources[pointerUpAnimationKey]; } else { pointerUpStoryboard = new Storyboard(); var upThemeAnimation = new PointerUpThemeAnimation(); Storyboard.SetTargetName(upThemeAnimation, nativeControl.Name); pointerUpStoryboard.Children.Add(upThemeAnimation); nativeControl.Resources.Add(new KeyValuePair <object, object>(pointerUpAnimationKey, pointerUpStoryboard)); } } if (Container != null) { Container.PointerPressed += OnPointerPressed; Container.PointerReleased += OnPointerReleased; Container.PointerCanceled += OnPointerCanceled; Container.PointerExited += OnPointerExited; Container.PointerEntered += OnPointerEntered; Container.PointerCaptureLost += OnPointerCaptureLost; } }
protected override void OnAttached() { effect = TouchEffect.PickFrom(Element); if (effect?.IsDisabled ?? true) { return; } effect.Element = (VisualElement)Element; if (View == null) { return; } touchGesture = new TouchUITapGestureRecognizer(effect); if (((View as IVisualNativeElementRenderer)?.Control ?? View) is UIButton button) { button.AllTouchEvents += PreventButtonHighlight; ((TouchUITapGestureRecognizer)touchGesture).IsButton = true; } View.AddGestureRecognizer(touchGesture); if (XCT.IsiOS13OrNewer) { hoverGesture = new UIHoverGestureRecognizer(OnHover); View.AddGestureRecognizer(hoverGesture); } View.UserInteractionEnabled = true; }
protected override void OnAttached() { if (View == null) { return; } effect = TouchEffect.PickFrom(Element); if (effect?.IsDisabled ?? true) { return; } effect.Element = (VisualElement)Element; View.Touch += OnTouch; UpdateClickHandler(); accessibilityManager = View.Context?.GetSystemService(Context.AccessibilityService) as AccessibilityManager; if (accessibilityManager != null) { accessibilityListener = new AccessibilityListener(this); accessibilityManager.AddAccessibilityStateChangeListener(accessibilityListener); accessibilityManager.AddTouchExplorationStateChangeListener(accessibilityListener); } if (XCT.SdkInt < (int)BuildVersionCodes.Lollipop || !effect.NativeAnimation) { return; } View.Clickable = true; View.LongClickable = true; CreateRipple(); if (Group == null) { if (XCT.SdkInt >= (int)BuildVersionCodes.M) { View.Foreground = ripple; } return; } rippleView = new FrameLayout(Group.Context ?? throw new NullReferenceException()) { LayoutParameters = new ViewGroup.LayoutParams(-1, -1), Clickable = false, Focusable = false, Enabled = false, }; View.LayoutChange += OnLayoutChange; rippleView.Background = ripple; Group.AddView(rippleView); rippleView.BringToFront(); }
protected override void OnAttached() { effect = TouchEffect.PickFrom(Element); if (effect?.IsDisabled ?? true) { return; } effect.Element = (VisualElement)Element; gestureLayer = new TouchTapGestureRecognizer(Control, effect); }
protected override void OnAttached() { effect = TouchEffect.PickFrom(Element); if (effect?.IsDisabled ?? true) { return; } effect.Element = (VisualElement)Element; if (Container != null) { gesture = new TouchNSClickGestureRecognizer(effect, Container); Container.AddGestureRecognizer(gesture); Container.AddSubview(mouseTrackingView = new MouseTrackingView(effect)); } }
protected override void OnAttached() { effect = TouchEffect.PickFrom(Element); if (effect?.IsDisabled ?? true) { return; } effect.Element = (VisualElement)Element; gesture = new TouchUITapGestureRecognizer(effect); if (Container != null) { Container.AddGestureRecognizer(gesture); Container.UserInteractionEnabled = true; } }
protected override void OnAttached() { if (View == null) { return; } effect = TouchEffect.PickFrom(Element); if (effect?.IsDisabled ?? true) { return; } effect.Element = (VisualElement)Element; View.Touch += OnTouch; UpdateClickHandler(); accessibilityManager = View.Context.GetSystemService(Context.AccessibilityService) as AccessibilityManager; if (accessibilityManager != null) { accessibilityListener = new AccessibilityListener(this); accessibilityManager.AddAccessibilityStateChangeListener(accessibilityListener); accessibilityManager.AddTouchExplorationStateChangeListener(accessibilityListener); } if (effect.NativeAnimation && Group != null && AndroidOS.Build.VERSION.SdkInt >= AndroidOS.BuildVersionCodes.Lollipop) { View.Clickable = true; View.LongClickable = true; viewOverlay = new FrameLayout(Group.Context) { LayoutParameters = new ViewGroup.LayoutParams(-1, -1), Clickable = false, Focusable = false, }; View.LayoutChange += LayoutChange; CreateRipple(); viewOverlay.Background = ripple; Group.AddView(viewOverlay); viewOverlay.BringToFront(); } }
protected override void OnAttached() { if (View == null) { return; } effect = TouchEffect.PickFrom(Element); if (effect?.IsDisabled ?? true) { return; } effect.Element = (VisualElement)Element; View.Touch += OnTouch; UpdateClickHandler(); accessibilityManager = View.Context?.GetSystemService(Context.AccessibilityService) as AccessibilityManager; if (accessibilityManager != null) { accessibilityListener = new AccessibilityListener(this); accessibilityManager.AddAccessibilityStateChangeListener(accessibilityListener); accessibilityManager.AddTouchExplorationStateChangeListener(accessibilityListener); } if (XCT.SdkInt < (int)BuildVersionCodes.Lollipop || !effect.NativeAnimation) { return; } View.Clickable = true; View.LongClickable = true; CreateRipple(); ApplyRipple(); View.LayoutChange += OnLayoutChange; }
protected override void OnAttached() { effect = TouchEffect.PickFrom(Element); if (effect?.IsDisabled ?? true) { return; } effect.Element = (VisualElement)Element; gesture = new TouchUITapGestureRecognizer(effect); if (Container != null) { if ((Container as IVisualNativeElementRenderer)?.Control is UIButton button) { button.AllTouchEvents += PreventButtonHighlight; gesture.IsButton = true; } Container.AddGestureRecognizer(gesture); Container.UserInteractionEnabled = true; } }