Como essa condição estranha acontece quando mostra o ícone do item de menu no menu de estouro da barra de ferramentas?
Quero mostrar um menu de estouro na barra de ferramentas (AppCompat-v7: 22.1.1), abaixo é meu menu_main.xml.
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@mipmap/ic_menu_search"
android:orderInCategory="100"
android:actionViewClass="android.widget.SearchView"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/menu_group_chat"
android:title="@string/menu_group_chat"
android:icon="@mipmap/ic_menu_groupchat" />
<item
android:id="@+id/menu_add_friend"
android:title="@string/menu_add_friend"
android:icon="@mipmap/ic_menu_add_friend" />
Depois de executar meu aplicativo, o ícone do item de menu não é exibido e tentei issosolução, adicione um método de substituição onMenuOpened () em meu Activty (se estende de AppCompatActivity),
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if(menu!=null){
if(menu.getClass().getSimpleName().equals("MenuBuilder")){
try {
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return super.onMenuOpened(featureId, menu);
}
Mas, depois de executar esta demonstração, acho que o ícone ainda não é exibido.
A partir dissoproblema relatado, Sei que AppCompatActivity.onMenuOpened não é mais chamado em 22.x, mas é estranho que, quando clico na tecla de menu de hardware do Genymotion, o menu aparece na parte inferior e com o ícone,
depois de fechar o menu, clico no botão de excesso na barra de ferramentas novamente, esses ícones no menu aparecem,
como é estranho! Por que isso acontece?