2013-07-28 41 views
4

最近我已經從常規操作欄實現切換到最近發佈的appcompat實現。我的應用程序大量使用操作欄來提供功能。由於切換,在老點 API(小於11)沒有任何菜單項。而較新的API可以,但它們不會像配置的那樣顯示圖像(如果room | withText)。有沒有其他人經歷過這個或想出任何解決方案?是否有可能使用appcompat庫有一個操作欄菜單?

回答

25

當使用appcompat庫時,我發現了什麼情況。您可以像正常一樣創建菜單。

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

但是,在你的菜單的XML文件,添加的xmlns:應用程序屬性菜單標籤,就像這樣:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" > 

然後,在每個菜單項,在那裏你通常會指定的「showAs」風格(ifRoom,withText等),包括此替代線旁邊的一個規律:

app:showAsAction="ifRoom|withText" 
android:showAsAction="ifRoom|withText" 

在此之後,你的菜單將顯示正確的當前的和舊的API。我從here得到了這個信息。

+0

@David Wood的回答中,您應該在代碼中添加\t \t setHasOptionsMenu(true)語句,以通知您有一個菜單可用於默認 – ajdeguzman

1

如果設備上有一個物理「菜單」按鈕,它將顯示上下文菜單。如果沒有,菜單項將被添加到ActionBar中。

+1

謝謝,但沒有項目被添加到2.2中的ActionBar? –

相關問題