Удалить заголовок на панели инструментов в appcompat-v7


170

Документация по Toolbarсловам

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

Как правильно удалить заголовок?


В чем проблема, если вы просто установите пустую строку? Я не думаю, что вы должны использовать пользовательский макет, который просто использует значок. Угадай, это излишне?
Вагнер Майкл

3
@maffelbaffel Ничего плохого в установке пустой строки, но она кажется неправильной. Но да, использование пользовательского макета было бы излишним.
timemanx

1
Я должен был сделать:toolbar.setTitle("");
Ферран Maylinch

1
@FerranMaylinch Да, это работа для меня тоже! Я использую toolbar.setTitle (null); что приводит к имени приложения в качестве заголовка по умолчанию. поэтому я установил toolbar.setTitle (""); которые работают нормально.
УЛЬХАС ПАТИЛ

Ответы:


556
getSupportActionBar().setDisplayShowTitleEnabled(false);

4
Этот ответ и ответ от David_E работают как у меня, если звонят сразу после звонка setSupportActionBar(). Выбор этого ответа, потому что это, кажется, официальный способ сделать это согласно официальной ссылке:Set whether an activity title/subtitle should be displayed.
C0D3LIC1OU5

Я только для панели инструментов, как панель действий, но не для чистого Toobar!
Искариот

2
Как удалить это используя style.xml? Пожалуйста, помогите мне
Ананд Савджани

Работал на меня. Вы должны использовать "appcompat_v7: v21", чтобы это работало.
V_J

Вы должны проверить, не приведет ли приведенное выше к возникновению исключения NullPonterException, выполнив: if (getSupportActionBar ()! = null) getSupportActionBar (). setDisplayShowTitleEnabled (false);
iOSAndroidWindowsMobileAppsDev

68

Правильный способ скрыть / изменить заголовок панели инструментов:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(null);

Это потому, что когда вы звоните setSupportActionBar(toolbar);, то getSupportActionBar()будет отвечать за обработку всего для панели действий, а не объекта панели инструментов.

Смотри здесь


9
setTitle (null) приводит к тому, что имя приложения становится заголовком .. setTitle ("") работает для меня.
user1354603

1
в XML я добавил <Панель инструментов приложения: title = "" // title - это пробел. Работал
Дан Алботяну

21

Попробуй это...

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_landing_page); 

    .....

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_landing_page);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

    .....

 }

19

Причина моего ответа на этот вопрос заключается в том, что сам ответ с наибольшим количеством голосов не смог решить мою проблему. Я понял эту проблему, сделав это.

<activity android:name="NAME OF YOUR ACTIVITY"
    android:label="" />

Надеюсь, это поможет и другим.


2
Это не очень хорошая идея. Если у вас есть действие <intent-filter>в этом действии, позволяющее пользователям открывать ваше приложение, например, щелкая URL-адрес, диалоговое окно устранения неоднозначности не будет иметь никакого заголовка!
Альберт Вила Кальво

10

Другой способ , чтобы удалить заголовок из вашей Toolbarзаключается в nullее, как так:

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
toolbar.setTitle(null);

4

этот

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    //toolbar.setNavigationIcon(R.drawable.ic_toolbar);
    toolbar.setTitle("");
    toolbar.setSubtitle("");
    //toolbar.setLogo(R.drawable.ic_toolbar);


2

Вы можете использовать любой из следующих способов, так как оба работают одинаково: getSupportActionBar().setDisplayShowTitleEnabled(false); и getSupportActionBar().setTitle(null);

Где использовать:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

Или :

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setTitle(null);

2
 Toolbar actionBar = (Toolbar)findViewById(R.id.toolbar);
    actionBar.addView(view);
    setSupportActionBar(actionBar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

принять к сведению эту строку getSupportActionBar().setDisplayShowTitleEnabled(false);


actionBar.addView (вид); это пользовательский вид, который я добавляю на панель инструментов
suulisin


1

Правильный способ скрыть заголовок / метку панели инструментов следующими кодами:

  Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle(null);

1

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

<style name="NoActionBarStyle" parent="Theme.AppCompat.Light.NoActionBar">
    <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="android:windowNoTitle">true</item>
</style>

1

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

Objects.requireNonNull(getSupportActionBar()).setDisplayShowTitleEnabled(false);

1

Это очевидно, но App Themeвыбор в дизайне только для отображения черновика во время верстки, не имеет отношения к реальному приложению, которое просматривается в мобильном телефоне. В моем случае в дизайне нет строки заголовка, но строка заголовка всегда была в мобильном телефоне.

Я начинаю с программирования на Android и борюсь за то, чтобы найти правильное решение.

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

Все предлагаемое решение в Javaили Kotlinне удалось для меня. Некоторые из них ломают приложение. И если никто (как и я) не собирается использовать строку заголовка в приложении, статическое решение будет чище.

Для меня единственное решение, которое работает в 2019 году (Android Studio 3.4.1), это:

в styles.xml(под app / res / values) добавьте строки:

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

После в AndroidManifest.xml(в приложении / манифесты)

замещать

android:theme="@style/AppTheme">

по

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

0

Никто не упомянул:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
    }

Внимательно прочитайте вопрос, прежде чем ответить, OP попросил удалить заголовок с панели инструментов
Bhavik Mehta


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.