actionBar 上面 部分机型 显示不出来 三个点那个按钮 ,大概的解释是 如果设备有菜单功能键,显示隐藏动作的功能将会由Menu菜单功能键实现
就是 有实体的菜单键 就会由菜单键替代。
如果想强制显示 这三个点的按钮,那么将下面这个方法 放入oncreate里面调用。
代码语言:javascript复制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();
}
}
代码语言:javascript复制<?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>
代码语言:javascript复制showAsAction 后面参数解释:
代码语言:javascript复制</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上,且显示该菜单项的文本