Пример #1
0
        /// <summary>
        /// Reveal the AppShowcaseView.
        /// </summary>
        /// <returns><c>true</c> if the view did show something, <c>false</c> otherwise.</returns>
        public bool Show()
        {
            // if we're in single use mode and have already shot our bolt then do nothing
            if (CurrentShowcase == null || CurrentShowcase.HasFired(Context))
            {
                return(false);
            }

            OnShowcaseStarted();

            // See if we have started this showcase before, if so then skip to the point we reached before
            // instead of showing the user everything from the start
            CurrentShowcase.LastStep(Context);

            return(ShowNext(AnimateInitialStep));
        }
Пример #2
0
        private bool ShowNext(bool animate)
        {
            if (CurrentShowcase == null)
            {
                return(false);
            }

            var next = CurrentShowcase.NextStep(Context);

            if (next != null)
            {
                UpdateShowcaseContent(next);
                LayoutShowcaseContent();

                if (CurrentStep.Delay > 0 && animate)
                {
                    handler.PostDelayed(() =>
                    {
                        ShowCurrentStep(animate);
                    }, CurrentStep.Delay);
                }
                else
                {
                    ShowCurrentStep(animate);
                }

                return(true);
            }
            else
            {
                var parent = Parent as ViewGroup;
                if (parent != null)
                {
                    parent.RemoveView(this);
                }

                OnShowcaseCompleted();

                return(false);
            }
        }