2011-05-06 85 views
6

我正在使用XOOM並嘗試隱藏操作欄。所以我按照指令清單文件做了以下 :Android(3.0)Action Bar不想去

uses-sdk android:minSdkVersion="11" android:targetSdkVersion="11"

還設置活動主題。

android:theme="@android:style/Theme.Holo.NoActionBar"

不幸的是我仍然可以看到操作欄。所以我從清單中刪除這一全息作用部並添加以下代碼

ActionBar actionBar = getActionBar(); actionBar.hide();

正從隱藏()方法零指示字例外。所以我明白getActionBar()返回null。現在我很好奇我失蹤了什麼?

回答

19

Theme.Holo.NoActionBar是不公開的框架 - 相反,你可以宣佈你自己的風格是這樣的:

<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
     <item name="android:windowActionBar">false</item> 
     <item name="android:windowNoTitle">true</item> 
</style> 
+0

我想實現這個方法操作欄抑制,但當我嘗試將父母設置爲android:Theme.Holo.Light時出現錯誤。我也試過@android:Theme.Holo.Light。請幫助我一直在用我的頭撞我的鍵盤,試圖找出這個問題。 – aamiri 2012-05-08 18:00:25

+0

你得到什麼錯誤?你有什麼平臺版本?你測試什麼設備? – 2012-05-08 21:00:59

+0

我還沒有到測試的地步,我只是想編譯。我在清單中的minSDK要求是api level 8,但是我的目標api是11.實際上有兩個錯誤,我得到:錯誤:「錯誤檢索項目的父項:找不到與給定名稱匹配的資源 '@android:Theme .Holo.Light」。」 和 「錯誤:找不到與給定名稱相匹配的資源:attr'android:windowActionBar'。」 – aamiri 2012-05-08 21:12:22

-9

Honeycomb中的操作欄無法隱藏,因爲沒有物理按鈕可退出應用程序,所以如果隱藏操作欄,則可以將用戶鎖定在應用程序中。你可以做的最好的是把酒吧放在「熄燈」模式,在那裏你可以用小點代替酒吧裏的普通圖標。

請參閱此鏈接: Is there a way to hide the system bar in Android 3.0? It's an internal device and I'm managing navigation

+1

OP XML是指行動起來吧,這是與沿底部運行欄單獨的,包括後面的/ home /等(沿上運行) – 2011-06-06 22:57:43

3

可以隱藏操作欄(將在屏幕頂部顯示)。如果你的活動標籤活動,則使用以下線的setContentView線

getParent().getActionBar().hide(); 

後,如果這是一個正常的活動,然後使用

getActionBar().hide(); 

而且對艙單,也爲我工作,但只您可以像這樣設置的特定活動不適用於應用程序。

android:theme="@android:style/Theme.Holo.NoActionBar" 
7

我來到了完全同樣的結論。如果你不能讓屏幕上的動作條顯示它是最有可能的兩種:

  • 窗口沒有標題; ActionBar本質上是一個榮耀的標題欄,因此沒有標題=沒有ActionBar,儘管這在文檔中沒有提及

  • 您嘗試在設置活動中的內容視圖之前調用getActionBar()方法。在這種情況下,此方法返回null。同樣,在文檔中沒有提及,如果您嘗試將ActionBar作爲自定義視圖構造函數的一部分進行構造/修改,那麼您運氣不佳。

更多關於在蜂窩can be found on my blog here

2

我動作條的探索幫我..編輯的值/風格。這樣

<resources> 

<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar" /> 

</resources>