Shankar Prasad Shankar Prasad - 3 months ago 40
Android Question

ShowcaseView is not working without ActionBar

Is there any way to use ShowcaseView if the application has a theme Theme.AppCompat.Light.NoActionBar and using android.support.v7.widget.Toolbar in the application. I am getting below stack trace while executing the app. Please suggest...

java.lang.RuntimeException: insertShowcaseViewWithType cannot be used when the theme has no ActionBar
at com.github.amlcurran.showcaseview.targets.AppCompatReflector.getHomeButton(AppCompatReflector.java:32)
at com.github.amlcurran.showcaseview.targets.AppCompatReflector.getActionBarView(AppCompatReflector.java:20)
at com.github.amlcurran.showcaseview.targets.ActionViewTarget.setUp(ActionViewTarget.java:22)
at com.github.amlcurran.showcaseview.targets.ActionViewTarget.getPoint(ActionViewTarget.java:29)
at com.github.amlcurran.showcaseview.ShowcaseView$1.run(ShowcaseView.java:149)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5312)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)

Answer

You won't be able to make a 'tutorial step' pointing to a menu item if the activity has not ActionBar (it's obvious why... you haven't menu items).

If you want to center the circle in a view inside your activity/fragment, this should work for you.

ShowcaseView.Builder res = new ShowcaseView.Builder(activity, true)
                .setTarget(target)
                .setContentTitle("title")
                .setContentText("content");

Where target is:

Target target = new ViewTarget(view_id, activity)