2013-04-24 58 views
1

3點菜單我想建立我的應用程序時Android的 - 要顯示在ICS

android:targetSdkVersion="15" 

這裏是我的故事,展現了3個點的溢出菜單鍵(旁邊RecentApp虛擬鍵)。我的應用程序包含兩個lib項目(只有jar + res沒有源代碼),lib-a正在使用菜單;當應用程序使用target-sdk = 10構建時,效果很好,在系統導航欄上的RecentApp鍵旁邊顯示3點圖標。現在lib-b已經升級了,我必須用target-sdk = 15構建應用程序,但是這使得lib-UI菜單消失了。我希望lib-a擁有和以前一樣的菜單。

我檢查了這些帖子,這是非常有幫助的,

Android Action Bar menu not showing when target sdk version is greater than 10

Android theme, fullscreen and the action bar

我可以不申請ActionBarSherlock也不設定目標SDK來10所以我想知道如果使用舊的主題(不是全息主題)將有所幫助。我創建了一個來自[android.Theme]的主題,適用於lib-a中的所有活動(在應用程序的manifest xml中),但沒有運氣。

所以我的問題是,主題能否解決問題?

+1

這個老菜單按鈕被稱爲「恥辱的菜單按鈕」。你確定你真的「必須」這樣做嗎? – WarrenFaith 2013-04-24 15:59:07

+0

+1我已閱讀@CommonsGuy的正確答案的噸噸:) – 2013-04-24 16:01:43

+0

看看這裏的答案:http://stackoverflow.com/a/18010220/3248593 – 2017-01-29 13:50:54

回答

2

我覺得你根本就做不到。系統欄中的「溢出菜單」出於傳統原因,並且僅在傳統應用程序(目標sdk < 11)在具有虛擬系統欄的設備上運行時顯示。它只是不打算在針對更高版本時顯示。

1

不,你不能這樣做。您可以下載早期版本的actionBarSherlock(即4.1.0),其中absForceOverflow是現有的方法,因此這會強制您的3點菜單到達1.6的所有系統,但這可能會導致您遇到問題(如帶有硬件鍵盤等的手機)。

幾周前,我偶然發現了這個問題,我用一個解決方法解決了這個問題:一個簡單的菜單圖標放入操作欄(3點圖標),如果點擊它,會出現一個自定義對話框,原始菜單(因爲您知道酒吧的默認高度(例如hdpi手機上的48dp),所以您可以通過編程方式將其放置在正確的位置)。

希望這會有所幫助。

0

是的,你可以,你只需要targetVersion從onCreate方法改變這樣的:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    getApplicationInfo().targetSdkVersion = 10; // To enable the 3-dot menu call this code before super.OnCreate 
    super.onCreate(savedInstanceState); 
} 

測試在Android 4.XX和Android 3.0