Пример #1
0
        /// <summary>
        /// Performs flip animation on two views.
        /// </summary>
        /// <param name="back">Back.</param>
        /// <param name="front">Front.</param>
        /// <param name="showFront">If set to <c>true</c> show front.</param>
        public static void FlipView(View back, View front, bool showFront)
        {
            AnimatorSet leftIn, rightOut, leftOut, rightIn;

            leftIn   = (AnimatorSet)AnimatorInflater.LoadAnimator(Application.Context, Resource.Animator.flip_left_in);
            rightOut = (AnimatorSet)AnimatorInflater.LoadAnimator(Application.Context, Resource.Animator.flip_right_out);
            leftOut  = (AnimatorSet)AnimatorInflater.LoadAnimator(Application.Context, Resource.Animator.flip_left_out);
            rightIn  = (AnimatorSet)AnimatorInflater.LoadAnimator(Application.Context, Resource.Animator.flip_right_in);

            var animator = new AnimatorSet();

            animator.AnimationEnd += (sender, e) =>
            {
                animator.Dispose();
                leftIn.Dispose();
                rightOut.Dispose();
                leftOut.Dispose();
                rightIn.Dispose();
            };

            if (showFront)
            {
                leftIn.SetTarget(back);
                rightOut.SetTarget(front);
                animator.PlayTogether(leftIn, rightOut);
            }
            else
            {
                leftOut.SetTarget(back);
                rightIn.SetTarget(front);
                animator.PlayTogether(rightIn, leftOut);
            }

            animator.Start();
        }
Пример #2
0
        void _fadeOut_AnimationEnd(object sender, EventArgs e)
        {
            this._Token.Cancel();
            this._Token.Dispose();
            this._Token = null;

            _Layout.Touch         -= LayoutTouched;
            _Layout.Visibility     = ViewStates.Gone;
            _fadeOut.AnimationEnd -= _fadeOut_AnimationEnd;

            _Set.Dispose();
            _Set = null;

            _fadeOut.RemoveAllListeners();
            _fadeOut.Dispose();
            _fadeOut = null;

            _Layout.Dispose();
            _Layout = null;
        }