//public AppShowcaseView(Context context, IAttributeSet attrs) // : base(context, attrs) //{ // Setup(context); //} // //public AppShowcaseView(Context context, IAttributeSet attrs, int defStyleAttr) // : base(context, attrs, defStyleAttr) //{ // Setup(context); //} // //// TODO: @TargetApi(android.os.Build.VERSION_CODES.LOLLIPOP) //public AppShowcaseView(Context context, IAttributeSet attrs, int defStyleAttr, int defStyleRes) // : base(context, attrs, defStyleAttr, defStyleRes) //{ // Setup(context); //} private void Setup(Context context) { AnimateInitialStep = true; handler = new Handler(); Visibility = ViewStates.Invisible; SetWillNotDraw(false); // create our default animation factory animationFactory = new FadeRenderer(); // make sure we add a global layout listener so we can adapt to changes AttachLayoutListener(); // consume touch events Touch += (sender, e) => { if (e.Event.Action == MotionEventActions.Up && CurrentStep.DismissOnTouch) { DismissStep(); } e.Handled = true; }; View contentView = LayoutInflater.From(Context).Inflate(Resource.Layout.showcase_content, this, true); contentContainer = contentView.FindViewById(Resource.Id.content_box); this.contentView = contentView.FindViewById<TextView>(Resource.Id.tv_content); dismissView = contentView.FindViewById<TextView>(Resource.Id.tv_dismiss); dismissView.Click += delegate { DismissStep(); }; }