2012-09-24 55 views
2

我有一些設備有問題的操作欄。在手機上運行時,我想全屏顯示,沒有標題欄和狀態欄。在平板電腦上,我想顯示操作欄,但仍然沒有標題欄。明斯克是7!切換全屏時,setTheme方法不起作用,所以我不能擁有兩個主題。有沒有辦法以全屏模式顯示操作欄?支持庫不支持操作欄。Android主題,全屏和動作欄

我想首先做這件事的唯一原因是因爲他們沒有任何理由,通過將菜單鍵移動到操作欄來打破向後兼容性。根據文檔,這個簡單的解決方案是將android:showAsAction =「ifRoom」添加到菜單項。但絕對沒有什麼。

我也測試了很多我在谷歌上找到的解決方案,它應該是全屏切換。它們都不適用於我的任何設備,因此如果您沒有自己使用它,請不要指向您已閱讀的內容。

編輯:我解決了這個問題。問題似乎是,你必須指定一個Holo主題來獲取操作欄。否則它不會顯示。我在主要活動中添加了這個。

@Override 
public void setTheme(int resid) { 
    if(isTablet(this)) 
    { 
     super.setTheme(android.R.style.Theme_Holo); 
     return; 
    } 
    super.setTheme(resid); 
} 

回答

2

在平板電腦上我要顯示操作欄,但仍然沒有標題欄

動作欄取代標題欄。沒有一個活動的概念具有標題欄的動作條

有沒有辦法在全屏模式下顯示操作欄?

AFAIK,根據定義。

支持庫不支持操作欄。

ActionBarSherlock提供API級別7和更高的操作杆的反向移植。

根據文檔的簡單解決方案是將android:showAsAction =「ifRoom」添加到菜單項。但絕對沒有什麼。

如果您沒有操作欄,它肯定「無所作爲」。如果你想要全屏體驗,那麼你將需要推出自己的菜單替換。恕我直言,大多數全屏應用程序已經做到了這一點(例如,遊戲與遊戲風格的「菜單」)。

+0

標題欄並未被操作欄取代。我可以看到標題欄。你把它與我所想的狀態欄混淆了。我不會添加任何第三方的東西。我寧願放棄平板電腦的支持。和你最後的聲明。我實際上認爲它會出現在系統欄中,因爲短版本的文檔說明您只需將屬性添加到菜單項以添加平板電腦支持。當我設置主題以顯示它時(在清單中),它已經在操作欄中起作用了。那麼解決方案是什麼?去第三方還是放棄它? – Fdk2000

+1

@ Fdk2000:「標題欄並未被操作欄取代」 - 是的,它在API Level 11及更高版本上。 「我實際上認爲它會出現在系統欄中,因爲文檔的簡短版本聲明您只需將屬性添加到菜單項以添加平板電腦支持」 - 只有當您擁有操作欄時。菜單出現在系統欄中的唯一方法是如果您的'targetSdkVersion'小於11. – CommonsWare

+0

謝謝!這清除了一些混淆。 – Fdk2000