Удалить заголовок приложения Android

Я знаю, что этот вопрос задавался миллион раз, но какой бы метод я ни использовал, он мне не подходит.

Если я использую

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

в файле манифеста вся тема приложения меняется. Если я поставлю

requestWindowFeature(Window.FEATURE_NO_TITLE);

в действиях onCreate он появляется вскоре после запуска приложения.

Кстати, у меня не выбрана ни одна тема, только с использованием стандартного Android.

9 ответов

Решение

Непонятно, что вы подразумеваете под "целой темой изменений приложения". Для устройств уровня API 11+ вам, вероятно, следует использовать @android:style/Theme.Holo.NoActionBar,

Если вы добавляете тему в приложение, она применяется ко всему приложению.

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

Вы должны добавить его в декларацию деятельности.

<activity
    android:name=".YourActivity"
    android:theme="@android:style/Theme.NoTitleBar"/>

Чтобы удалить строку заголовка из вашего приложения в Android Studio

  1. Откройте файл res > values > styles.xml
  2. Замените свой код на:

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

Откройте ваш файл style.xml, создайте новый стиль, как показано ниже. Вы выбираете свое имя и устанавливаете родителя, как показано ниже

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

В файле AndroidManifest.xml задайте имя темы для конкретного действия, которое вы не хотите показывать в панели, и все готово.

<activity  android:theme ="@style/your_own_name" >
</activity>

Это то, что сработало для меня

 android:theme="@style/Theme.AppCompat.NoActionBar">

Для Android 8 и выше поддержка. Используйте это в вашем файле темы приложения. Я изменил мой по умолчанию в res/styles.xml:

<style name="AppTheme" parent="Theme.AppCompat.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="android:windowNoTitle">true</item>
    <item name="android:background">@color/white</item>
</style>

Когда вы создаете новый проект в Android, тогда вы получите тему по умолчанию, примененную к вашему проекту, которая имеет строку заголовка. но если вы хотите удалить или применить какую-то другую тему для всего вашего приложения, вы можете определить, как показано ниже на уровне приложения:

<application
        android:name="com.mycomp.myproj.MainApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Sherlock" >

но если вы хотите применить какую-то тему только на некоторых конкретных экранах, то вы можете определить, как показано ниже на уровне активности:

<activity
            android:name="com.mycomp.myproj.MainActivity"
            android:label="@string/app_name" 
            android:theme="@style/AppTheme">

Внутри AndroidManifest

 <activity
            android:name=".activity.HomeMenu"
            android:screenOrientation="nosensor"
            android:theme="@android:style/Theme.Light.NoTitleBar">
            <intent-filter>

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

и убедитесь, что ваш класс распространяется на активность

Если вы создали собственную тему в styles.xml, вы можете сделать это:

<style name="AppTheme" parent="android:Theme.Material.Light">
    <!-- Override the android colour scheme etc. -->
    <item name="android:colorPrimary">@color/color_primary</item>
</style>

Чтобы удалить панель действий и заголовок, добавьте файл styles.xml:

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

Затем в вашем AndroidManifest.xml вы можете использовать собственную тему с панелью действий или без нее.

<application
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"> <---- With action bar
    <activity
        android:theme="@style/AppTheme.NoActionBar"> <---- No action bar
        <intent-filter>
etc...

Если вы используете Android Studio, вы можете изменить тему в разделе "Дизайн".

Например, перейдите в Activity_main.xml (Дизайн)

В верхней части экрана дизайна находится вкладка "Тема". Идите туда и ищите все темы NoTitleBar.

Может не быть там в версии <3.0

Другие вопросы по тегам