Почему AppTheme.NoActionBar не работает?
Я создал приложение для Android в Android Studio, и он создал эти стили по умолчанию:
<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">
но когда я запускаю приложение, я получаю панели действий:
почему я получаю панель действий? Я делаю что-то явно неправильно, или это Android Studio, официальная IDE Google для своей собственной платформы, пытаясь запутать / ввести в заблуждение его разработчики?
вот мой код активности, в нем нет ничего, что может привести к появлению панели действий самостоятельно:
public class WelcomeActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.activity_welcome);
}
}
8 ответов
попробуйте что-то вроде этого:
<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>
ни один из ответов работал для меня, но я нашел такое решение:
открыть 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>
Если вы просто позволяете Android Studio автоматически генерировать активность, посмотрите в activity_welcome
. Есть быть android.support.design.widget.AppBarLayout
и если вы удалите его, ActionBar должен исчезнуть.
один раз WelcomeActivity выходит AppCompatActivity попробуй тема.Совместимости приложений.NoActionBar:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
Если это еще не сделано, включите версию библиотеки appcompat в свою сборку.Gradle в:
dependencies {
compile 'com.android.support:appcompat-v7:24.1.1'
}
вы должны добавить ниже
<item name="android:windowFullscreen">true</item>
<item name="windowActionBar">false</item>
можно использовать
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Вы можете здесь полноэкранная тема для AppCompat
вы должны использовать эту тему в манифесте.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>
и в стилях.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-файл. Я обнаружил, что основная тема была установлена для приложения, но тема, которую я хотел применить, должна была быть добавлена в правильную деятельность.