actionBar 上面 部分机型 显示不出来 三个点那个按钮 ,大概的解释是 如果设备有菜单功能键,显示隐藏动作的功能将会由Menu菜单功能键实现
就是 有实体的菜单键 就会由菜单键替代。
如果想强制显示 这三个点的按钮,那么将下面这个方法 放入oncreate里面调用。
privatevoid getOverflowMenu() { try{ ViewConfiguration config = ViewConfiguration.get(this); Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); if(menuKeyField !=null) { menuKeyField.setAccessible(true); menuKeyField.setBoolean(config,false); } }catch (Exception e) { e.printStackTrace(); } }
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_registered" android:actionViewClass="android.widget.SearchView" android:orderInCategory="100" android:showAsAction="ifRoom" android:title="@string/contact_friend_unfollow"/> <item android:id="@+id/menu_unregistered" android:actionViewClass="android.widget.SearchView" android:orderInCategory="100" android:showAsAction="always" android:title="@string/invite"/> <item android:id="@+id/menu_all" android:actionViewClass="android.widget.SearchView" android:orderInCategory="100" android:showAsAction="always" android:title="@string/all"/> </menu>
showAsAction 后面参数解释:
</pre><pre name="code" class="html">ALWAYS:总是将该MenuItem显示在ActionBar上 COLLAPSE_ACTION_VIEW:将该Action View折叠成普通菜单项 IF_ROOM:当ActionBar位置有足够空间时才显示该MenuItem NEVER:不将该MenuItem显示在ActionBar上 WITH_TEXT:将该MenuItem显示在ActionBar上,且显示该菜单项的文本