我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@android:style/ theme . notitlebar。

使用NoTitleBar主题作为我的样式的父主题将从我的所有活动中删除标题栏。

我可以在某个地方设置无标题样式的项目吗?


当前回答

我不喜欢this.requestWindowFeature(Window.FEATURE_NO_TITLE);因为标题栏会短暂出现,然后消失。

我也不喜欢android:theme="@android:style/ theme。NoTitleBar”,因为我失去了新设备用户已经习惯的3.0+ Holo的所有变化。所以我想到了这个解。

在res/values文件夹中创建一个名为styles.xml的文件(如果它不存在的话)。在该文件中放置以下代码:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.NoTitleBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.NoTitleBar.Fullscreen"></style>
</resources>

接下来用另一个styles.xml文件创建res/values-v11(同样,这个文件可能已经存在)。在该文件中放置以下代码:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen"></style>
</resources>

如果你的目标是4.0以上,创建一个res/values-v14文件夹和另一个styles.xml文件(是的,它可能已经在那里了)。在该文件中放置以下代码:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo.Light"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.Light.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"></style>
</resources>

最后,创建好所有这些文件后,打开androidmanifest .xml文件,添加代码:

android:theme="@style/Theme.NoTitle"

如果想要应用到整个应用程序,则添加到不需要标题的活动的活动标记或应用程序标记。

现在您的用户将获得与他们的设备版本相关联的主题和您想要的屏幕布局。

附注:将值更改为android:theme="@style/ theme。“全屏”也会有同样的效果,还会删除通知栏。

其他回答

在onCreate方法中,使用以下代码段:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);

如果你做用户YaW和Doug Paul说的,那么你必须记住在调用setContentView之前必须设置窗口特性。如果不是,您将得到一个异常。

Add

<item name=“android:windowNoTitle”>true</item>

在AppTheme内部(style .xml)

第一个答案是角闪石。 以下是我的解释: 添加:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

在oncreate()方法中。

之前:

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);

(不仅仅是在setContentView之前) 如果不这样做,你将被强制关闭。 +1这个答案。

将此样式添加到style.xml文件中

 <style name="AppTheme.NoActionBar">
     <item name="windowActionBar">false</item>
     <item name="windowNoTitle">true</item>
 </style>

之后,在你不想看到标题栏的特定活动中引用此样式名称到androidManifest.xml,如下所示。

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