如何永久禁用操作栏

148

我可以使用以下代码在Honeycomb中隐藏操作栏:

getActionBar().hide();

但是当键盘打开,并且用户复制粘贴任何内容时,操作栏会再次显示。 如何永久禁用操作栏?


2
找到答案了 hhh - Biji
1
当您尝试复制、粘贴时,它的默认视图并不是操作栏。 - Padma Kumar
是的,但是即使复制粘贴结束后,它仍然存在,没有消失。 - Biji
getSupportActionBar().hide(); - Ameya Salagre
29个回答

263

如果您正在使用Theme.Holo.Light,并且想在Android 3.2之前的设备上使用Theme.Holo.Light.NoActionBar变体,则可以将以下内容添加到您的styles.xml中:

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

然后将其设置为您的活动主题:

<activity android:theme="@style/NoActionBar" ... />

8
这是正确答案。不会移除自定义主题,就像@Biji的解决方案那样。 - phreakhead
1
有没有想法设置隐藏通知栏的附加标志是什么? - jesses.co.tt
1
我也发现需要继承自FragmentActivity而不是ActionBarActivity。 - Meanman
4
通知栏可以使用 <item name="android:windowFullscreen">true</item> 来移除。 - Mike Baxter
1
这对我没用。使用了以下链接:https://dev59.com/w10a5IYBdhLWcg3w68cz - Christopher Smit

123

通过在清单文件中设置活动主题,

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>

这似乎是做这件事的唯一正确方法,特别是如果您底部有一个相对布局... - jcfrei
1
这是我唯一能让它工作的方法,不幸的是。它会移除自定义主题,但对于我来说,这确实是唯一完全移除“ActionBar”的方法。 - RileyE
4
这在新的ADT中使用AppCompat主题无法正常工作。我认为与其完全放弃AppCompat,尝试摆脱它并不是一个好的解决方案!我已经尝试了@monchote的方法,它对我起作用了。 - ericn
应该使用以下代码: <activity android:theme="@android:style/Theme.NoTitleBar"> 而不是 <activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> - Amandeep Rohila
在三星Galaxy J2手机上,应用程序会崩溃,但在Nexus 9上没有问题。 - Suici Doga
不建议使用此功能/与应用兼容性不佳。 - larsaars

37

1
源代码似乎已经过时,截至2019年。最新的源代码请参考:https://developer.android.com/training/system-ui/status - B.Cakir

31
<application
    .
    .
    android:theme="@android:style/Theme.Holo.Light.NoActionBar"
    . >

也许这会对你有所帮助。


3
请注意,此方法需要至少API级别13。 - Olumide

23

使用Android Studio默认生成的Activity超类是ActionBarActivity,因此其他回答中的解决方案均无效。要解决这个问题,只需更改超类:

使用Android Studio預設生成的Activity超類是ActionBarActivity,因此其他回答中的解決方案均無效。要解決這個問題,只需更改超類:

public class xxxActivity extends ActionBarActivity{

收件人:

public class xxxActivity extends Activity {

这对我有用。感谢您的帮助。 - j_fulch

20

如果您想要全屏显示而不显示操作栏和标题,请将以下内容添加到style.xml中。

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
      <item name="windowActionBar">false</item>
      <item name="windowNoTitle">true</item>
      <item name="android:windowFullscreen">true</item>
</style>

并使用manifest.xml中的样式。

android:theme="@style/AppTheme.NoActionBar" 

14

前往styles.xml,将DarkActionBar更改为NoActionBar

style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

13
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    getSupportActionBar().hide();
}

12

我发现最好的方法是为项目中的所有活动创建一个超类,并在其onCreate()中调用以下代码,以获得自定义主题和无操作栏 -

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

这种方法对我来说总是有效的。唯一的问题是,当启动应用程序时(不是启动活动),你会在短短的几秒钟内看到操作栏。


9
您可以简单地强制隐藏操作栏:
ActionBar  actionbar = getSupportActionBar();
actionbar.hide();

只需使用默认主题,如果设置全屏,则工作效果良好


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接