Exemple #1
0
        public override void removeStatusListener(AnimationStatusListener listener)
        {
            bool removed = this._statusListeners.Remove(listener);

            if (removed)
            {
                this.didUnregisterListener();
            }
        }
Exemple #2
0
        public void dragEnd(float velocity)
        {
            Curve animationCurve = Curves.fastLinearToSlowEaseIn;
            bool  animateForward;

            if (velocity.abs() >= CupertinoRouteUtils._kMinFlingVelocity)
            {
                animateForward = velocity > 0 ? false : true;
            }
            else
            {
                animateForward = this.controller.value > 0.5 ? true : false;
            }

            if (animateForward)
            {
                int droppedPageForwardAnimationTime = Mathf.Min(
                    MathUtils.lerpFloat(CupertinoRouteUtils._kMaxDroppedSwipePageForwardAnimationTime, 0f,
                                        this.controller.value).floor(),
                    CupertinoRouteUtils._kMaxPageBackAnimationTime
                    );
                this.controller.animateTo(1.0f, duration: new TimeSpan(0, 0, 0, 0, droppedPageForwardAnimationTime),
                                          curve: animationCurve);
            }
            else
            {
                this.navigator.pop();

                if (this.controller.isAnimating)
                {
                    int droppedPageBackAnimationTime =
                        MathUtils.lerpFloat(0f, CupertinoRouteUtils._kMaxDroppedSwipePageForwardAnimationTime,
                                            this.controller.value).floor();
                    this.controller.animateBack(0.0f, duration: new TimeSpan(0, 0, 0, 0, droppedPageBackAnimationTime),
                                                curve: animationCurve);
                }
            }

            if (this.controller.isAnimating)
            {
                AnimationStatusListener animationStatusCallback = null;
                animationStatusCallback = (AnimationStatus status) => {
                    this.navigator.didStopUserGesture();
                    this.controller.removeStatusListener(animationStatusCallback);
                };
                this.controller.addStatusListener(animationStatusCallback);
            }
            else
            {
                this.navigator.didStopUserGesture();
            }
        }
Exemple #3
0
        public void dragEnd(float velocity)
        {
            Curve animationCurve = Curves.fastLinearToSlowEaseIn;
            bool  animateForward;

            if (velocity.abs() >= CustomPageRouteUtils._kMinFlingVelocity)
            {
                animateForward = velocity <= 0;
            }
            else
            {
                animateForward = this.controller.value > 0.5;
            }

            if (animateForward)
            {
                int droppedPageForwardAnimationTime = Mathf.Min(
                    MathUtils.lerpFloat(a: CustomPageRouteUtils._kMaxDroppedSwipePageForwardAnimationTime, 0f,
                                        t: this.controller.value).floor(),
                    b: CustomPageRouteUtils._kMaxPageBackAnimationTime
                    );
                this.controller.animateTo(1.0f, TimeSpan.FromMilliseconds(value: droppedPageForwardAnimationTime),
                                          curve: animationCurve);
            }
            else
            {
                this.navigator.pop();

                if (this.controller.isAnimating)
                {
                    int droppedPageBackAnimationTime =
                        MathUtils.lerpFloat(0f, b: CustomPageRouteUtils._kMaxDroppedSwipePageForwardAnimationTime,
                                            t: this.controller.value).floor();
                    this.controller.animateBack(0.0f, TimeSpan.FromMilliseconds(value: droppedPageBackAnimationTime),
                                                curve: animationCurve);
                }
            }

            if (this.controller.isAnimating)
            {
                AnimationStatusListener animationStatusCallback = null;
                animationStatusCallback = (AnimationStatus status) => {
                    this.navigator.didStopUserGesture();
                    this.controller.removeStatusListener(animationStatusCallback);
                };
                this.controller.addStatusListener(animationStatusCallback);
            }
            else
            {
                this.navigator.didStopUserGesture();
            }
        }
Exemple #4
0
        public void dragEnd(float velocity)
        {
            Curve animationCurve = Curves.fastLinearToSlowEaseIn;
            bool  animateForward;

            if (velocity.abs() >= CupertinoRouteUtils._kMinFlingVelocity)
            {
                animateForward = velocity <= 0;
            }
            else
            {
                animateForward = controller.value > 0.5f;
            }
            if (animateForward)
            {
                int droppedPageForwardAnimationTime = Mathf.Min(
                    MathUtils.lerpNullableFloat(CupertinoRouteUtils._kMaxDroppedSwipePageForwardAnimationTime, 0f,
                                                controller.value).floor(),
                    CupertinoRouteUtils._kMaxPageBackAnimationTime
                    );
                controller.animateTo(1.0f, duration: TimeSpan.FromMilliseconds(droppedPageForwardAnimationTime),
                                     curve: animationCurve);
            }
            else
            {
                navigator.pop <object>();

                if (controller.isAnimating)
                {
                    int droppedPageBackAnimationTime =
                        MathUtils.lerpNullableFloat(0f, CupertinoRouteUtils._kMaxDroppedSwipePageForwardAnimationTime,
                                                    controller.value).floor();
                    controller.animateBack(0.0f, duration: TimeSpan.FromMilliseconds(droppedPageBackAnimationTime),
                                           curve: animationCurve);
                }
            }

            if (controller.isAnimating)
            {
                AnimationStatusListener animationStatusCallback = null;
                animationStatusCallback = (AnimationStatus status) => {
                    navigator.didStopUserGesture();
                    controller.removeStatusListener(animationStatusCallback);
                };
                controller.addStatusListener(animationStatusCallback);
            }
            else
            {
                navigator.didStopUserGesture();
            }
        }
Exemple #5
0
 public abstract void removeStatusListener(AnimationStatusListener listener);
Exemple #6
0
 public abstract void addStatusListener(AnimationStatusListener listener);
Exemple #7
0
 public override void addStatusListener(AnimationStatusListener listener)
 {
 }
Exemple #8
0
 public override void removeStatusListener(AnimationStatusListener listener)
 {
 }
Exemple #9
0
 public override void removeStatusListener(AnimationStatusListener listener)
 {
     parent.removeStatusListener(listener);
 }
Exemple #10
0
 public override void addStatusListener(AnimationStatusListener listener)
 {
     parent.addStatusListener(listener);
 }
Exemple #11
0
 public override void addStatusListener(AnimationStatusListener listener)
 {
     this.didRegisterListener();
     this._statusListeners.Add(listener);
 }