Як видалити рядок заголовка в android studio?


88

У моєму додатку є цей рядок заголовка вгорі, де було б меню переповнення, але мені не потрібні налаштування, і у мене лише один екран. Коли я зміню тему, як описано в багатьох інших питаннях, я отримую стару тему 2.2. Я хочу, щоб сучасна тема була просто без смужки вгорі.

Відповіді:


151

Перейдіть на сторінку styles.xml і змініть .DarkActionBarна.NoActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
</style>

стає

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
</style>

якщо кольори не відповідають вашому додатку, ви можете насправді піти на це

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

1
Працює, як очікувалося. Однак під час перегляду всіх активних програм заголовок також зник.
IAbstract

як би ви виправили це @IAbstract?
Пабло Бієдма,

@PabloBiedma: Не знаю.
IAbstract

60

У файлі маніфесту Зміна:

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

4
Хоча це працює, редагування styles.xmlфайлу може бути кращим варіантом для більшості, оскільки використання цього методу ігнорує будь-які значення, які, можливо, були встановлені AppThemeу styles.xmlфайлі. Рішення, яке замінює батьківський клас NoActionBarу styles.xmlфайлі, зберігає будь-яку попередньо встановлену інформацію про стиль.
Лимонне насіння

У цьому випадку весь мій фон програми стане чорним
Саджид-хан,

24
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

спрацьовує, onCreate()коли setContentView()викликано перед .

інакше він розбивається


6
Це призводить до аварійного завершення роботи програми. Я ставлю рядок між ними super.onCreate.....і setContentView..... І він падає
Налорін

Це не правильний спосіб зробити це. Містер Торрес це добре пояснив.
Jithin Pavithran

16

У styles.xml файлі змініть DarkActionBar на NoActionBar

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>


13

Перевір це

 ActionBar actionBar = getSupportActionBar();
    actionBar.hide();

Це робочий код, щоб приховати смужку самою програмою. Може бути розміщено в конструкторі onCreate(...)після рядків super.onCreate(..)і, setContentView(...)щоб приховати панель відразу після запуску програми.
Мілан Керслагер


7

У файлі маніфесту змініть на це:

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

7

Перейдіть до Project -> app -> main -> res -> values ​​-> styles.xml

Змініть цей рядок, якщо ви хочете видалити його для кожного подання

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

до

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

якщо ви хочете зробити це лише для одного подання, ви можете змінити його у своїх даних маніфесту. Перейдіть до Android -> маніфести -> AndroidManifest.xml. виконайте наступне:

  1. Шукайте у поданні, в якому ви хочете отримати такий тип змін <activity android:name"...">
  2. Додати android:theme=""@style/Theme.AppCompat.NoActionBar"

Мені подобається це рішення. На відміну від налаштування NoActionBar у маніфесті, яке змушує вас видалити будь-яку вже застосовану тему (або стиль), наприклад Theme.MyApp, за допомогою цього рішення можна редагувати Theme.MyApp та зберігати кілька налаштувань.
MasterJEET


4
  1. відкриті стилі.xml
  2. вставити
 <style name="no_title" parent="AppTheme">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowContentOverlay">@null</item>
 </style>

Ви можете змінити назву = "---------"

  1. відкрийте Androidmaifest.xm

    знайти android: theme = "@ style / AppTheme" змінено на android: theme = "@ style / no_title"

  2. клацніть вибрати Тема на панелі меню (зелений колір біля MainActivity)

    • натисніть Тема проекту
    • клацніть no_title (з правого боку)
    • натисніть ОК

4

Для початківців, як я. Просто виконуйте те, що я кажу, з вашого Android Project.

додаток -> res -> значення -> style.xml

замінити цей код

<resources>

<!-- 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>
</style>

</resources>

Насолоджуйтесь



2

зробіть це у своєму файлі маніфесту:

<application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

це переключає мене на старий дизайн андроїда (чорний фон, текстові поля з жовтими рамками ...)
Jonas

спробуйте android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"переконатися, що ви використовуєте рівень api хв. 14.
Рустам

Ви можете використовувати це для легкої теми: android: theme = "@ style / Theme.AppCompat.Light.NoActionBar">
XIII


2

Спробуйте змінити стилі на NoActionBar, якщо це не працює, додайте цей код до своєї основної діяльності

 protected void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();
        setContentView(R.layout.activity_main);

    }

2

Це працює для мене, сподіваюся, ця робота також для вас

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
}

1

Найкращий спосіб - скористатися функцією панелі дій, setTitle()якщо ви хочете показати логотип або мати щось інше в собі actionBar, але не хочете бачити назву програми, напишіть цей код у MainActivity.java або де ви хочете сховати заголовок у onCreate:

android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setIcon(R.mipmap.full_white_logo_m); // display logo
actionBar.setTitle(""); // hide title

Таким чином ваш додаток не матиме причин аварії.


1

Просто використовуйте setTitle(null)вище

toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

Заголовок зникне, тоді ви зможете використовувати обраний вами логотип .....



1

Я зіткнувся з тією ж проблемою, що і ви, і вирішую цю проблему, просто змінивши клас, який я продовжив.

//you will get the app that does not have a title bar at the top.
import android.app.Activity;
public class MainActivity extends Activity
{}

//you will get the app that has title bar at top
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
{}

Сподіваюся, це вирішить вашу проблему.


0

У AndroidManifest.xmlвашій програмі ви знайдете android:themeприклад, встановлений на@style/AppTheme

Тепер перейдіть до styles.xml, знайдіть тег стилю, переконайтеся, що ім'я встановлено AppThemeтаким же, як у маніфесті, і встановіть батьківський значення android:Theme.Holo.Light.NoActionBar (також зробіть це в стилях (v21), якщо він є у вашому проекті)

<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar">
    <!-- ... -->
</style>


0

спробуйте: toolbar.setTitle ("");

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle("");
    setSupportActionBar(toolbar);
}

Ласкаво просимо до Stack Overflow! Будь ласка, не відповідайте лише вихідним кодом. Спробуйте дати хороший опис того, як працює ваше рішення. Дивіться: Як написати хорошу відповідь? . Дякую
sɐunıɔ ןɐ qɐp

0

Щоб просто видалити рядок заголовка (що означає, що рядок містить ім'я вашого додатка) з діяльності, я просто додаю нижній рядок до цієї діяльності в manifests\AndroidManifest.xml:

android:theme="@style/AppTheme.NoActionBar"

Тепер це повинно виглядати як нижче

<activity
  android:name=".MyActivity"
  android:theme="@style/AppTheme.NoActionBar"></activity>

Сподіваюся, це буде корисним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.