it-swarm.com.ru

Почему 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">

Но когда я запускаю приложение, я получаю панель действий:

 enter image description here

Почему я получаю панель действий? Я делаю что-то явно не так, или Android Studio, официальный Google IDE для своей собственной платформы, пытается сбить с толку/ввести в заблуждение своих разработчиков?

Вот мой код активности, в нем нет ничего, что могло бы вызвать появление панели действий:

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

Попробуйте что-то вроде этого:

<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>
37
Mehmet K

Ни один из других ответов не работал для меня, но я нашел это решение:

Откройте 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>
7
trinity420

Если вы просто разрешите Android Studio автоматически генерировать активность, посмотрите в activity_welcome. Там будет Android.support.design.widget.AppBarLayout, и если вы удалите его, ActionBar должен исчезнуть.

4
tomaset22

У вас может быть панель действий в макете или тема в файле AndroidManifest 

3
GetRealRenz

Как только 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'
}
1
Denis

Вы должны добавить ниже 

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

Ты можешь использовать

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

Вы можете посетить Полноэкранная тема для AppCompat

0
IntelliJ Amiya

вы должны использовать эту тему в 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>
0
Taras Okunev

Попробуйте проверить файл AndroidManifest.xml. Я обнаружил, что основная тема была создана для приложения, но тему, которую я хотел применить, нужно было добавить в правильное действие.

0
Kristelle