<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home" />
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard" />
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications" />
</menu>
@Override
public boolean onCreateOptionsMenu(Menu menu) {
new MenuInflater(this).inflate(R.menu.bottom_nav_menu,menu);
//設置菜單顯示圖標
setIconsVisible(menu,true);
return super.onCreateOptionsMenu(menu);
}
/**
* 解決不顯示menu icon的問題
* @param menu
* @param flag
*/
private void setIconsVisible(Menu menu, boolean flag) {
//判斷menu是否爲空
if(menu != null) {
try {
//如果不爲空,就反射拿到menu的setOptionalIconsVisible方法
Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
//暴力訪問該方法
method.setAccessible(true);
//調用該方法顯示icon
method.invoke(menu, flag);
} catch (Exception e) {
e.printStackTrace();
}
}
}