2012-08-31 45 views
5

我注意到操作栏(Theme.Holo)看起来很酷只在android 3.0或高级,但它不喜欢很好的例如Android 2.3 。如何隐藏操作栏(Theme.Holo)如果Android版本低于3.0

是否有显示基于Android版本的操作栏(Theme.Holo)?

+1

难道你不能使用两种布局,并为Pre 3.0和Post 3.0设置一个布局? – AxGryndr

+0

我更喜欢如果我在编程上做,例如,我检查Android版本,如果低于3.0,删除栏。 – user836026

+1

Android 2.3上没有任何操作栏,除非您采取特定步骤添加实现一个(例如,ActionBarSherlock)的第三方代码。 – CommonsWare

回答

4

那是因为没有添加的动作条,直到Android 3.0的(API级别11),所以任何版本的Android低于此将有一个标题栏,而不是一个操作栏。

ActionBar还不是官方兼容库的一部分,所以同时,ActionBarSherlock库允许您在所有API版本中都有相同的ActionBar。

如果您想要完全隐藏ActionBar,只需将android:style/Theme.Holo.NoActionBar添加到清单中的活动即可。

+0

谢谢...我将如何添加android:style/Theme。 Holo.NoActionBar取决于Android版本。 – user836026

+0

我不认为你可以通过编程方式添加该属性,但是ActionBarSherlock会为你处理不同的Android版本,为你的应用程序在所有API版本中提供相同的很好的ActionBar 你只是试图能够完全隐藏ActionBar什么东西比Android 3.0低?并为Android 3.0+显示它? – starkej2

+0

是的,但确切地说,我想隐藏Android上的“标题栏”低于3.0,并将“操作栏”保持在3+ – user836026

5

操作栏要求API 11最低。如果您想以编程方式将其删除,但您可以在该活动的代码中使用hide()。

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

不太确定它会显示什么3.0以下的东西,但它似乎是最好的地方开始。

编辑:

您可以检查在运行时SDK版本生成常数

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { //checks if its lower than Honeycomb 
    ActionBar actionBar = getActionBar(); 
    actionBar.hide(); 
} 
+0

谢谢......但我如何检查Android版本? – user836026

+1

编辑答案。 – Tonithy

+4

我想它必须大于或等于(“> =”)符号,而不是小于(<)符号..并感谢它帮助我:) – Zombie

相关问题