为什么 AppTheme.NoActionBar 不起作用?
Why is AppTheme.NoActionBar not working?
我在 Android Studio 中创建了一个 Android 应用程序,它默认创建了这些样式:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
但是,在activity中,我尝试将其设置为主题:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:theme="@style/AppTheme.NoActionBar">
但是当我 运行 应用程序时,我得到了操作栏:
为什么我会看到操作栏?我是在做一些明显错误的事情,还是 Android Studio,Google 的官方 IDE 自己的平台,试图 confuse/mislead 它的开发人员?
这是我的 activity 代码,其中没有任何内容会导致操作栏自行出现:
public class WelcomeActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.activity_welcome);
}
}
您的布局中可能有操作栏,或者在 AndroidManifest 文件中设置了主题
尝试这样的事情:
<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 的主题,即:
<activity
...
android:theme="@style/AppTheme.NoActionBar">
</activity>
如果您只是让 Android Studio 自动生成 activity,请查看 activity_welcome
。有android.support.design.widget.AppBarLayout
,如果删除它,ActionBar 应该会消失。
你应该在下面添加
<item name="android:windowFullscreen">true</item>
<item name="windowActionBar">false</item>
您可以使用
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
您可以访问 Full Screen Theme for AppCompat
一旦 WelcomeActivity 扩展了 AppCompatActivity,尝试 Theme.AppCompat.NoActionBar:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
如果尚未完成,请将一个版本的 appcompat 库添加到您的 build.gradle:
dependencies {
compile 'com.android.support:appcompat-v7:24.1.1'
}
None 其他答案对我有用,但我找到了这个解决方案:
在 Android Studio 中打开 values/styles.xml
并更改:
<!-- 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>
您应该在 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>
尝试检查 AndroidManifest.xml 文件。我发现应用程序已经建立了主主题,但是我想应用的主题必须添加到正确的 activity.
我的一项非主要活动也遇到了类似的问题。我在 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>
我猜这样就成功覆盖了主旋律
我在 Android Studio 中创建了一个 Android 应用程序,它默认创建了这些样式:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
但是,在activity中,我尝试将其设置为主题:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
android:theme="@style/AppTheme.NoActionBar">
但是当我 运行 应用程序时,我得到了操作栏:
为什么我会看到操作栏?我是在做一些明显错误的事情,还是 Android Studio,Google 的官方 IDE 自己的平台,试图 confuse/mislead 它的开发人员?
这是我的 activity 代码,其中没有任何内容会导致操作栏自行出现:
public class WelcomeActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.activity_welcome);
}
}
您的布局中可能有操作栏,或者在 AndroidManifest 文件中设置了主题
尝试这样的事情:
<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 的主题,即:
<activity
...
android:theme="@style/AppTheme.NoActionBar">
</activity>
如果您只是让 Android Studio 自动生成 activity,请查看 activity_welcome
。有android.support.design.widget.AppBarLayout
,如果删除它,ActionBar 应该会消失。
你应该在下面添加
<item name="android:windowFullscreen">true</item>
<item name="windowActionBar">false</item>
您可以使用
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
您可以访问 Full Screen Theme for AppCompat
一旦 WelcomeActivity 扩展了 AppCompatActivity,尝试 Theme.AppCompat.NoActionBar:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
如果尚未完成,请将一个版本的 appcompat 库添加到您的 build.gradle:
dependencies {
compile 'com.android.support:appcompat-v7:24.1.1'
}
None 其他答案对我有用,但我找到了这个解决方案:
在 Android Studio 中打开 values/styles.xml
并更改:
<!-- 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>
您应该在 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>
尝试检查 AndroidManifest.xml 文件。我发现应用程序已经建立了主主题,但是我想应用的主题必须添加到正确的 activity.
我的一项非主要活动也遇到了类似的问题。我在 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>
我猜这样就成功覆盖了主旋律