gpt4 book ai didi

android - 在工具栏溢出菜单中显示菜单项图标时,这种奇怪的情况是如何发生的?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:26 26 4
gpt4 key购买 nike

我想在工具栏中显示一个溢出菜单(AppCompat-v7:22.1.1),下面是我的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" />

运行我的应用程序后,没有显示菜单项的图标,然后我尝试了这个solution ,在我的 Activty 中添加一个覆盖方法 onMenuOpened()(扩展自 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);
}

但是运行这个demo后,发现图标还是没有显示。

1. Menu with overflow button click

从这里reported issue ,我知道 AppCompatActivity.onMenuOpened 在 22.x 中不再被调用,但奇怪的是,当我在 Genymotion 中单击硬件菜单键时,菜单出现在底部并带有图标,

2. Menu with menu key click

关闭菜单后,我再次点击工具栏中的溢出按钮,菜单中的这些图标出现了,

3. Menu with overflow button click

这太奇怪了!为什么会这样?

最佳答案

对于 AppCompactActivity 您可以改为将此检查放在 onPrepareOptionsPanel() 上。

@Override
protected boolean onPrepareOptionsPanel(View view, 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) {
Log.e(getClass().getSimpleName(), "onMenuOpened...unable to set icons for overflow menu", e);
}
}
}
return super.onPrepareOptionsPanel(view, menu);
}

关于android - 在工具栏溢出菜单中显示菜单项图标时,这种奇怪的情况是如何发生的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30076392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com