public override bool Leave(AttachObject obj)
        {
            Cancel(obj);
            FlexibleTransitionerState state = (FlexibleTransitionerState)obj.transitionerState;

            if (state.detachedSnapshot == null)
            {
                return(true);
            }
            state.detachedSnapshot.Apply(
                SnapshotComplete: () => {
                obj.SetLeft();
            },
                tweenFirst: true);
            return(false);
        }