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

170

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

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

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

timemanx
источник
В чем проблема, если вы просто установите пустую строку? Я не думаю, что вы должны использовать пользовательский макет, который просто использует значок. Угадай, это излишне?
Вагнер Майкл
3
@maffelbaffel Ничего плохого в установке пустой строки, но она кажется неправильной. Но да, использование пользовательского макета было бы излишним.
timemanx
1
Я должен был сделать:toolbar.setTitle("");
Ферран Maylinch
1
@FerranMaylinch Да, это работа для меня тоже! Я использую toolbar.setTitle (null); что приводит к имени приложения в качестве заголовка по умолчанию. поэтому я установил toolbar.setTitle (""); которые работают нормально.
УЛЬХАС ПАТИЛ

Ответы:

556
getSupportActionBar().setDisplayShowTitleEnabled(false);
massaimara98
источник
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()будет отвечать за обработку всего для панели действий, а не объекта панели инструментов.

Смотри здесь

David_E
источник
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);
MrEngineer13
источник
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);
Юнес
источник
3

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

toolbar.setTitle("");
варотария вайси
источник
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);
Crime_Master_GoGo
источник
2
 Toolbar actionBar = (Toolbar)findViewById(R.id.toolbar);
    actionBar.addView(view);
    setSupportActionBar(actionBar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

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

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

Просто добавьте этот атрибут на панель инструментов

app:title=" "
Дино Крис
источник
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);
    }
Andoctorey
источник
Внимательно прочитайте вопрос, прежде чем ответить, OP попросил удалить заголовок с панели инструментов
Bhavik Mehta
0

toolbar.setTitle(null);// удаляем заголовок

user2167877
источник
0
Toolbar toolbar = findViewById(R.id.myToolbar);
    toolbar.setTitle("");
Бакар Перейра
источник