2013-12-11 40 views
16

我正在關注developer.android.com上的教程,並嘗試在操作欄上添加項目。操作按鈕不顯示在操作欄上?

儘管我添加了搜索操作顯示的所有代碼,但是顯示爲溢出元素而不是操作按鈕元素。我嘗試了使用軟鍵盤選項的4「和7」虛擬設備。

這裏是

main_activity_actions.xml 
<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<!-- Search, should appear as action button --> 
<item android:id="@+id/action_search" 
    android:icon="@drawable/ic_action_search" 
    android:title="@string/action_search" 
    android:showAsAction="ifRoom" /> 
<!-- Settings, should always be in the overflow --> 
<item android:id="@+id/action_settings" 
    android:title="@string/action_settings" 
    android:showAsAction="never" /> 
</menu> 

這裏是MainActivity.javaonCreateOptionsMenu方法。

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main_activity_actions, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

enter image description here

我想了解是什麼原因導致這個問題。

+0

你能提供的截屏與溢出可見? –

+3

這看起來不像這個問題的重複... – adamdport

回答

48

這是因爲如果您使用支持AppCompat ActionBar庫和ActionBarActivity,您應該創建菜單的方式不同於在ActioBarSherlock或默認ActionBar中創建xml菜單的標準方式。

那麼試試這個代碼:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
     <item android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      app:showAsAction="always" /> 
     <item android:id="@+id/action_compose" 
      android:icon="@drawable/ic_action_compose" 
      android:title="@string/action_compose" 
      app:showAsAction="always"/> 
</menu> 
+4

對於任何其他有這個問題的人來說,xml定義頂部的'xmlns'命名空間是很重要的。 – MarcF

+0

@MarcF - 爲什麼這些很重要? – Anjum

+0

@Anjum - 在沒有這些聲明的情況下,它對我來說不起作用。也許對其他人很明顯,但當時對我來說不是這樣。 – MarcF

8

雖然問題解決了,讓我發帖回答更多的信息,可後來發現任何人有幫助。現在

,問題是你已經使用android:showAsAction="ifRoom"android:showAsAction="never",相反,如果你想使操作按鈕總是可見的再使用android:showAsAction="always"

僅供參考,安卓showAsAction可以採取任何值之一:

android:showAsAction = [「ifRoom」| 「從不」 「withText」| 「總是」| 「collapseActionView」]

enter image description here

你可以閱讀更多關於Menu Resource