private Command AndroidNativeFlipFrontToBack(FilppableContentViewXF newElementInstance) { return(new Command(() => { SetCameraDistance(_cameraDistance); ObjectAnimator animateYAxis0To90 = ObjectAnimator.OfFloat(this, "RotationY", 0.0f, 90f); animateYAxis0To90.SetDuration(300); animateYAxis0To90.Start(); animateYAxis0To90.Update += (sender, args) => { // On every animation Frame we have to update the Camera Distance since Xamarin overrides it somewhere SetCameraDistance(_cameraDistance); }; animateYAxis0To90.AnimationEnd += (sender, args) => { newElementInstance. SwitchViewsFlipFromFrontToBack(); ObjectAnimator animateYAxis90To180 = ObjectAnimator.OfFloat(this, "RotationY", 90f, 180f); animateYAxis90To180.SetDuration(300); animateYAxis90To180.Start(); animateYAxis90To180.Update += (sender1, args1) => { // On every animation Frame we have to update the Camera Distance since Xamarin overrides it somewhere SetCameraDistance(_cameraDistance); }; }; })); }
private Command AndroidNativeFlipFrontToBack(FilppableContentViewXF newElementInstance) { return(new Command(() => { AnimateFlipHorizontally(NativeView, false, 0.5, () => { newElementInstance.SwitchViewsFlipFromFrontToBack(); AnimateFlipHorizontally(NativeView, true, 0.5, null); }); })); }
private void AnimateFlipHorizontally(FilppableContentViewXF newElementInstance, bool isFrontToBack) { SetCameraDistance(_cameraDistance); ObjectAnimator animateYAxis0To90 = ObjectAnimator.OfFloat(this, "RotationY", 0.0f, -90f); animateYAxis0To90.SetDuration(500); animateYAxis0To90.Start(); animateYAxis0To90.Update += (sender, args) => { // On every animation Frame we have to update the Camera Distance since Xamarin overrides it somewhere SetCameraDistance(_cameraDistance); }; animateYAxis0To90.AnimationEnd += (sender, args) => { if (isFrontToBack) { newElementInstance.SwitchViewsFlipFromFrontToBack(); } else { newElementInstance.SwitchViewsFlipFromBackToFront(); } this.RotationY = -270; ObjectAnimator animateYAxis90To180 = ObjectAnimator.OfFloat(this, "RotationY", -270f, -360f); animateYAxis90To180.SetDuration(500); animateYAxis90To180.Start(); animateYAxis90To180.Update += (sender1, args1) => { // On every animation Frame we have to update the Camera Distance since Xamarin overrides it somewhere SetCameraDistance(_cameraDistance); }; }; }