2015-07-04 86 views
0

我覺得如果在build.grade給予不同的支持lib目錄下:android中的actionbar對支持lib版本有不同的行爲?

compile 'com.android.support:appcompat-v7:22.0.0' 
compile 'com.android.support:support-v4:22.0.0' 

compile 'com.android.support:appcompat-v7:20.0.0' 
compile 'com.android.support:support-v4:20.0.0', 

的動作條具有不同的行爲。

  • 應用程序圖標沒有出現在v22.0.0
  • 菜單沒有顯示出來 在溢出菜單,而在V20會的。

在活動中,我們有以下代碼。

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

v20.0.0的行爲是我想要的。 如果我想v22.0.0具有與v20.0.0相同的行爲,我應該怎麼做?

這是因爲在android 13中,操作欄上的某些行爲改變了嗎?

回答

0

您必須在onCreateOptionsMenu()中返回true,否則菜單將不會顯示。這就是爲什麼你看不到它,因爲super方法返回false。這並沒有改變,並且有很好的記錄。

其他可能的原因,你的菜單顯示不出來:

  • 你的XML的菜單資源,不使用程序兼容性,但的包前綴屬性「機器人」屬性來代替。

  • 您在佈局中使用工具欄,但不會將其註冊爲主ActionBar。

  • 這個版本的AppCompat中的錯誤(但我懷疑它)。此日期的最新版本是22.2.0。

由於v21,AppCompat實現了材料設計行爲,而在材質設計中,默認情況下應用程序圖標並未顯示。

+0

我已經更改/測試了以下代碼,使onCreateOptionsMenu始終返回true。 (菜單菜單){ '@Override public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater()。inflate(R.menu.menu_main,menu); 返回true; }' 但是行爲仍然是一樣的,選項菜單沒有出現在v22的溢出部分,而v20是好的 – QXS

+0

這很奇怪,你能給出更多關於你的代碼的細節,比如菜單文件的內容或Activity你從(應該是ActionBarActivity)繼承? – BladeCoder

+0

是的,它是ActionBarActivity。 ' – QXS

相關問題