android - ShowcaseView 突出显示错误的项目

标签 android showcaseview

我像这样使用 ShowcaseView:

ActionItemTarget target = new ActionItemTarget(this, R.id.menu_search);

ShowcaseView sv = new ShowcaseView.Builder(this, true)
                .setTarget(target)
                .setContentText("Press this to search")
                .setStyle(R.style.CustomShowcaseTheme)
                .build();

但是当我第一次启动应用程序时,ShowcaseView 会突出显示主页按钮。当我尝试再次启动应用程序时,会显示正确的 ActionBar 项目。 我的应用程序不使用像 ActionbarSherlock 这样的兼容性库。

知道为什么会发生这种情况吗?

最佳答案

根据要求:

问题是您正在尝试检索尚不在层次结构中的 View 的 id。根据 Activity View 周期,菜单仅在onCreate之后创建。最好的解决方案是使用 onCreateOptionsMenu 但即使在这里 R.id.menu_search 也不会返回有效的 id,因为菜单尚未创建。由于事件顺序在 API lvl 16 中发生了变化,我建议你稍微修改一下。您可以在 onCreate() 上创建一个处理程序并执行 postDelayed 可运行程序。该代码将在菜单设计完成后执行。在该可运行程序上,您可以检索 R.id.menu_search 的 View 并突出显示它。

关于android - ShowcaseView 突出显示错误的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26144849/

相关文章:

java - 如何在 Eclipse 中导入 ShowcaseView?

android - Twilio - 收到错误 : Account SID cannot be null when making a call

java - Java 中的每个类和包在 Android 中也可用吗?

android - React Native 对代码的更改对模拟器应用程序没有影响?

java - Android ShowcaseView 用法 - 无法将其导入到我的项目中

java - Android:将 ShowcaseView 作为项目导入时出现堆错误,如果作为 JAR,则为 ClassNotFound,内存不足

android - 如何使包含Build.gradle文件的项目

java - 旋转器没有对用户使用react

Android ShowCaseView 的 buttonLayoutParams 不起作用

android - 添加库后出现未定义方法错误