2012-04-02 90 views
1

我已將Action Bar添加到我的應用程序中。Action Bar位置問題

由於Galaxy Nexus上的一些奇怪的原因,溢出菜單出現在屏幕的底部,而在股票應用程序(地圖,Gmail,Google Play,日曆等)中,溢出菜單出現在屏幕。

Overflow at the bottom

反正是有,迫使它在屏幕的頂部與應用的標題一起出現?

請注意:頂部的灰色欄包含我的應用程序的標題,但我已經刪除它的截圖。

+3

這不會是有益的,但我建議使用ActionBarSherlock.com,而不是與非ICS應用程序更好的向後兼容原生操作欄。 – Navarr 2012-04-02 03:42:07

+0

感謝您的建議。我還沒有考慮向後兼容非ICS設備。 – mob1lejunkie 2012-04-02 04:04:31

+0

+1同意@Navarr – 2012-04-02 04:13:08

回答

2

正如評論中的人們所說的,如果你打算公開你的應用程序,那麼即使它不是一個完美的解決方案(儘管如此,它最終也不得不默認並使用ABS)。但是,你有動作條更迫切的問題 - 嘗試在XML這些行添加到您的根菜單:

android:showAsAction="always" 

確保

uiOptions="splitActionBarWhenNarrow" 

不存在任何地方在你的Android清單。您也可以測試以查看

setDisplayShowHomeEnabled(true/false) and setDisplayShowTitleEnabled(true/false) 

對菜單的位置有間接影響。

編輯〜另外,你是否沿着標籤或其他項目的行中使用任何東西,只是沒有出現,但實際上出現在頂部酒吧?

EDIT2〜這是我的選項菜單代碼:

public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
    case R.id.demographics: 
     Intent intent = new Intent(); 
     intent.setClass(this, demoPanel.class); 

     startActivity(intent); 
     break; 
    case R.id.settings: 
     // another startActivity, this is for item with id "menu_item2" 
     break; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 

    return true; 
} 
+0

頂部欄只有應用程序的名稱。通常我隱藏頂部欄,但我必須顯示它以使Action Bar正常工作。 – mob1lejunkie 2012-04-02 05:28:06

+0

@ mob1lejunkie是的,我明白你必須展示它。當我的應用程序處於早期階段時,我遇到了類似的情況,但我不記得導致菜單按鈕出現在第二行而不是最後一行的情況。我剛剛測試了我的應用程序,splittingwhennarrow導致我的菜單圖標完全消失 - 因爲第一行用選項卡填充到邊緣。我將編輯我的評論,這樣你就可以看到我的選項菜單代碼的樣子,也許它會有所幫助。 – Davek804 2012-04-02 05:32:58

+0

原來我不知何故uiOptions =「splitActionBarWhenNarrow」這就是爲什麼溢流菜單顯示在底部。 – mob1lejunkie 2012-04-02 11:34:55