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


170

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

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

Який правильний спосіб видалити заголовок?


де проблема, якщо ви просто встановили її в порожній рядок? Я не думаю, що вам доведеться використовувати нестандартний макет, який просто використовує значок. Здогадаєтесь, що це надмір?
Вагнер Майкл

3
@maffelbaffel Нічого поганого, якщо встановити порожній рядок, але він відчуває себе неправильно. Але так, використання користувацького макета було б надмірним.
timemanx

1
Мені довелося зробити:toolbar.setTitle("");
Ферран Мейлінч

1
@FerranMaylinch Так, це теж робота для мене! Я використовую toolbar.setTitle (null); що призводить до імені програми як заголовка за замовчуванням. тому я встановив toolbar.setTitle (""); які добре працюють.
ULHAS PATIL

Відповіді:


554
getSupportActionBar().setDisplayShowTitleEnabled(false);

4
Ця відповідь та відповідь від David_E працюють як у мене, якщо вони дзвонили відразу після дзвінка setSupportActionBar(). Вибір цієї відповіді, оскільки це, мабуть, є офіційним способом зробити це згідно з офіційною Set whether an activity title/subtitle should be displayed.
довідкою

я лише для панелі інструментів, як панель дій, але не для чистого тобар!
iscariot

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 я додав <app tool app: 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

2

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

app:title=" "

1

Правильний спосіб приховати назву / мітку ToolBar наступними кодами:

  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(під додатком / res / значення) додайте рядки:

   <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);
    }

Прочитайте ретельно питання, перш ніж відповісти, ОП попросив видалити назву з панелі інструментів
Бхавік Мехта


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