Android样式文件styles.xml中的windowNoTitle(ActionBarActivity)

10

我想在应用程序中隐藏标题栏(显示活动图块的位置)。我通过将android:windowNoTitle设置为true来实现这一点。对于API级别为19的设备,这很有效。我使用运行API级别10的设备进行了测试,它仅隐藏了通知栏。图块栏仍然显示。

这是我的res/values/styles.xml文件:

<resources>
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
    </style>

</resources>

编辑:我在我的清单文件中使用AppBaseTheme作为主题。在任何其他value-vXX文件夹中都没有其他styles.xml文件。

编辑#2:我正在为我的活动扩展一个ActionBarActivity


3
在你的onCreate()方法中,在setContentView(layout)之前添加requestWindowFeature(Window.FEATURE_NO_TITLE);以去除标题栏。如果需要全屏,则使用getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); - Kunu
1
看起来你正在使用两个不同的主题名称AppThemeAppBaseTheme)。而且这两个主题没有区别。因此,拥有2个主题不仅是无用的,而且名称应该相同。 - Phantômaxx
@DerGolem 我现在只使用一个styles.xml和一个主题,但它不起作用。似乎只有全屏模式在gingerbread上可以工作。 - Armin
非常奇怪。它一定要工作... 你是否删除了values-xy文件夹中的其他主题/样式? - Phantômaxx
1
糟糕的做法!我会尽快将其删除,因为它只是默认添加的。 - Phantômaxx
显示剩余22条评论
3个回答

15

尝试使用这个

<style name="MyMaterialDialog" parent="Base.Theme.AppCompat.Light.Dialog.MinWidth">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>
移除 Android 前缀!

1

我在styles.xml中尝试了android:style/Theme.NoTitleBar.Fullscreen,但是出现了以下问题:

Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

所以我遵循了使用AppCompat主题的建议,并使用以下代码在styles.xml中隐藏状态栏和操作栏:

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
    </style>
</resources>

0

我在所有设备上使用一个主题,它在API级别8到16上完美运行(因为我只有5个物理设备)。我相信它也适用于17-19设备。

请确保在您的清单文件(在应用程序部分)中有一行类似于android:theme="@style/AppTheme"。

尝试使用这个主题:

<style
    name="AppBaseTheme"
    parent="android:style/Theme.NoTitleBar.Fullscreen"
    >
    <item name="android:windowNoTitle">true</item>

    ...

</style>

并删除values-xy文件夹中的样式/主题

[编辑]

由于AppCompat主题不是全屏幕,按定义,StatusBar将消失,但TitleBar不会消失

如果您不需要AppCompat提供的ActionBar,则应尽快摆脱AppCompat:不要用不需要的不想要的东西使应用程序臃肿

例如,我有一个Header Bar和一个Footer Bar,但这些只是我自己实现的RelativeLayouts。
仍然有使用整个屏幕表面的自由。


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