天天看點

android的actionbar的溢出菜單預設不顯示圖示icon,怎樣弄成微信那樣可以顯示icon

大家都知道,android的actionbar的溢出菜單預設是不顯示圖示icon的,那麼怎樣弄成微信那樣可以顯示icon呢?

答案是可以利用反射機制讓隐藏在Overflow中的MenuItem顯示Icon圖示,代碼如下:

複寫下面onMenuOpened方法,并用反射方法實作

@Override
    public boolean onMenuOpened(int featureId, Menu menu)
    {
        if (featureId == Window.FEATURE_ACTION_BAR && 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) {
                }
            }
        }
        return super.onMenuOpened(featureId, menu);
    }