我正在使用CastVideos-android示例项目作为参考创建一个支持强制转换的应用程序。
CastVideos-android示例的1.2版使用this forked version of the ShowcaseView library来显示非常漂亮的叠加层以突出显示投射按钮。
这很棒并且可以帮助开发人员满足Cast Sender-App UI要求,但this forked version of the ShowcaseView library对于可能在ActionBar中使用多个图标的应用程序效果不佳。
例如,在向ActionBar添加SearchView类型项时,ShowcaseView会出现错误。
结果如下,复制此行为的步骤位于屏幕截图下方:
复制步骤:
将CastVideo-android项目中的res / menu / main.xml更改为如下所示(向SearchBar添加SearchView类型的ActionView):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:compat="http://schemas.android.com/apk/lib/res/android.support.v7.appcompat" >
<item
android:id="@+id/media_route_menu_item"
android:title="@string/media_route_menu_title"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:showAsAction="always"/>
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
app:showAsAction="never"/>
<item
android:id="@+id/search"
android:icon="@drawable/abc_ic_search"
app:title="@string/menu_Search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom"/>
</menu>
我正在使用最新版本的v7-appcompat库。
我怀疑罪魁祸首是ActionBarViewWrapper.getMediaRouterButtonView()方法(在com.github.amlcurran.showcaseview.targets中找到)通过反射找到MediaRouterButton,但似乎无法理解如果有多个图标如何找到MediaRouterButton ActionBar中的项目。
非常感谢任何帮助!