有些版本的手机的ActionBar设置如下,是不会有显示的(比如我的手机)
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".MainActivity"> <item android:icon="@drawable/abc_ic_search_api_mtrl_alpha" android:id="@+id/action_search" android:title="Search" android:showAsAction="ifRoom" /> <item android:id="@+id/action_settings" android:title="@string/action_settings" android:icon="@drawable/abc_ic_menu_share_mtrl_alpha" android:showAsAction="ifRoom" /> </menu>
Search和Setting只会显示在菜单键显示出的菜单中。需要将上面的XML文件改成:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".MainActivity"> <item android:icon="@drawable/abc_ic_search_api_mtrl_alpha" android:id="@+id/action_search" android:title="Search" app:showAsAction="ifRoom" /> <item android:id="@+id/action_settings" android:title="@string/action_settings" android:icon="@drawable/abc_ic_menu_share_mtrl_alpha" app:showAsAction="ifRoom" /> </menu>
将android:showAsAction改成app:showAsAction,ActionBar才会正常显示
在stackoverflow当中终于找到答案:Action Bar not displaying Action Items (All in overflow) Android 。原来因为我使用的是android.support.v7.app.ActionBarActivity,所以在xml文件里,应该把android:showAsAction换成app:showAsAction。
以上。