2014年7月24日 ActionBar的使用 Android 首先是更改Overflow图标 通过android:actionOverflowButtonStyle更改 123456789<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- 替换Overflow的图标--> <item name="android:actionOverflowButtonStyle">@style/ChatActionOverflowButtonStyle</item></style><style name="ChatActionOverflowButtonStyle"> <item name="android:src">@mipmap/actionbar_add_icon</item></style> Overflow会根据手机出现不显示的情况,所以需要通过反射让它一直显示出来。 12345678910111213/** * 显示Overflow */ private void setOverflowShowingAlways() { try { ViewConfiguration configuration = ViewConfiguration.get(this); Field menuKey = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); menuKey.setAccessible(true); menuKey.setBoolean(configuration, false); } catch (Exception e) { e.printStackTrace(); } } 如果需要在Overflow的子项里面显示图标,也是需要使用反射的 12345678910111213141516171819202122/** * 显示Overflow里面子项的图标 * * @param featureId * @param menu * @return */ @Override public boolean onMenuOpened(int featureId, Menu menu) { if (featureId == Window.FEATURE_ACTION_BAR && menu != null) { if (menu.getClass().getSimpleName().equals("MenuBuilder")) { try { Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE); method.setAccessible(true); method.invoke(menu, true); } catch (Exception e) { e.printStackTrace(); } } } return super.onMenuOpened(featureId, menu); } 设置Overflow的子项 < Material Design系列之Material Design简介 Hello World >