26

我在 Android Studio 中创建了一个 Android 应用,它默认创建了这些样式:

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

但是,在活动中,我尝试将其设置为主题:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   ...
android:theme="@style/AppTheme.NoActionBar">

但是当我运行应用程序时,我得到了操作栏:

在此处输入图像描述

为什么我得到一个操作栏?我是在做明显错误的事情,还是谷歌为其自己平台的官方 IDE Android Studio 试图混淆/误导其开发人员?

这是我的活动代码,其中没有任何内容可以导致操作栏自行出现:

public class WelcomeActivity extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.activity_welcome);
    }
}
4

9 回答 9

64

尝试这样的事情:

<style name="AppTheme.NoActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
  </style>

并将其设置为清单中活动的主题,即:

<activity
    ...
    android:theme="@style/AppTheme.NoActionBar">
</activity>
于 2016-04-07T14:23:33.640 回答
15

其他答案都不适合我,但我找到了这个解决方案:

values/styles.xml在 Android Studio 中打开并更改:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

至:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- changed .DarkActionBar to .NoActionBar -->
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
于 2017-04-05T20:57:42.937 回答
5

如果您只是让 Android Studio 自动生成活动,请查看activity_welcome. 有android.support.design.widget.AppBarLayout,如果你删除它,ActionBar 应该消失了。

于 2016-04-07T14:24:55.430 回答
3

你的布局中可能有一个操作栏,或者在 AndroidManifest 文件中设置主题

于 2016-04-07T14:22:15.327 回答
2

一旦WelcomeActivity扩展AppCompatActivity,尝试Theme.AppCompat.NoActionBar

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>

如果尚未完成,请在 build.gradle 中包含一个 appcompat 库版本:

dependencies {
    compile 'com.android.support:appcompat-v7:24.1.1'
}
于 2016-09-03T17:13:15.040 回答
0

你应该在 manifest.xml 中使用这个主题,和:

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

在styles.xml 中:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
于 2017-04-23T09:38:10.620 回答
0

你应该在下面添加

<item name="android:windowFullscreen">true</item>
<item name="windowActionBar">false</item>

您可以使用

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

您可以访问 AppCompat 的全屏主题

于 2016-04-07T14:31:38.377 回答
0

尝试检查 AndroidManifest.xml 文件。我发现为应用程序建立了主题,但我想应用的主题必须添加到正确的活动中。

于 2018-06-29T23:56:17.043 回答
0

我的一项非主要活动也遇到了类似的问题。我在 Mehmet K 的回答中有类似的主题:

<style name="MyActivitysTheme">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

我也刚刚添加了父主题:

<style name="MyActivitysTheme" parent="AppTheme">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

我猜这样它成功地覆盖了主题

于 2019-11-07T13:23:02.163 回答