menuBuilder.setOptionalIconsVisible 只能从同一个库组中调用

Pri*_*nka 7 java android android-menu

我正在尝试使用以下代码显示带有溢出菜单的图标

MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu,menu);

if(menu instanceof MenuBuilder){
    MenuBuilder menuBuilder = (MenuBuilder) menu;
    menuBuilder.setOptionalIconsVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误

menuBuilder.setOptionalIconsVisible 只能从同一个库组中调用

在线的

menuBuilder.setOptionalIconsVisible(true);
Run Code Online (Sandbox Code Playgroud)

我知道我可以忽略它而压制它,但我想知道它为什么会出现,还有其他方法可以解决它吗?

谢谢

Var*_*iag -5

编辑

好吧,在对这个主题进行更多调查之后,这似乎是评论和这个问题的答案中所述的错误,应该可以安全地抑制它。它可能会在支持库的下一版本之一中得到修复。


旧答案

为什么不使菜单项在 XML 中可见?使用属性android:showAsAction。有几个可用值:ifroom | always | collapseActionView | never | withText-阅读更多

例如,如果您希望始终显示第一项,并在有空间时显示第二项

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/item_id1"
        android:icon="@drawable/ic_icon1"
        app:iconTint="@color/white"
        app:showAsAction="always"
        android:title="First item"/>

    <item android:id="@+id/item_id2"
        android:icon="@drawable/ic_icon2"
        app:iconTint="@color/white"
        app:showAsAction="ifRoom"
        android:title="Second item"/>
</menu>
Run Code Online (Sandbox Code Playgroud)