Usuń tytuł z paska narzędzi w appcompat-v7


170

Dokumentacja od Toolbarmówi

Jeśli aplikacja używa obrazu logo, zdecydowanie powinna rozważyć pominięcie tytułu i podtytułu.

Jaki jest właściwy sposób usunięcia tytułu?


gdzie jest problem, jeśli po prostu ustawisz go na pusty ciąg? Nie sądzę, abyś używał niestandardowego układu, który używa tylko ikony. Zgadnij, że to przesada?
Wagner Michael

3
@maffelbaffel Nie ma nic złego w ustawianiu pustego ciągu, ale wydaje się to niewłaściwe. Ale tak, używanie niestandardowego układu byłoby przesadą.
timemanx

1
Musiałem zrobić:toolbar.setTitle("");
Ferran Maylinch

1
@FerranMaylinch Tak, to też jest praca dla mnie! Używam toolbar.setTitle (null); co powoduje, że nazwa aplikacji jest tytułem domyślnym. więc ustawiam toolbar.setTitle (""); które działają dobrze.
ULHAS PATIL

Odpowiedzi:


554
getSupportActionBar().setDisplayShowTitleEnabled(false);

4
Ta odpowiedź i odpowiedź Davida_E działają tak, jak u mnie, jeśli zostaną wywołane zaraz po wywołaniu setSupportActionBar(). Wybierając tę ​​odpowiedź, ponieważ wydaje się, że jest to oficjalny sposób, zgodnie z oficjalnym odniesieniem:Set whether an activity title/subtitle should be displayed.
C0D3LIC1OU5

tylko dla paska narzędzi, takiego jak pasek akcji, ale nie dla czystego paska narzędzi!
iscariot

2
Jak go usunąć za pomocą style.xml? Proszę, pomóż mi
Anand Savjani,

Pracował dla mnie. Aby to zadziałało, musisz użyć „appcompat_v7: v21”.
V_J

musisz sprawdzić, czy powyższe nie wygeneruje wyjątku NullPonterException, wykonując: if (getSupportActionBar ()! = null) getSupportActionBar (). setDisplayShowTitleEnabled (false);
iOSAndroidWindowsMobileAppsDev

68

Prawidłowy sposób ukrycia / zmiany tytułu paska narzędzi jest następujący:

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

To dlatego, że kiedy dzwonisz setSupportActionBar(toolbar);, togetSupportActionBar() będzie odpowiedzialny za obsługę wszystkiego do paska akcji, a nie obiekt paska narzędzi.

Zobacz tutaj


9
setTitle (null) powoduje, że nazwa aplikacji staje się tytułem .. setTitle („”) działało dla mnie.
user1354603

1
w xml dodałem <Toolbar app: title = "" // tytuł to spacja. Pracował
Dan Alboteanu

21

Spróbuj tego...

 @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

Powodem mojej odpowiedzi jest to, że sama najbardziej pozytywna odpowiedź nie rozwiązała mojego problemu. Rozwiązałem ten problem, robiąc to.

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

Mam nadzieję, że to pomoże też innym.


2
To nie jest dobry pomysł. Jeśli w tym działaniu masz <intent-filter>zezwolenie użytkownikom na otwieranie aplikacji przez kliknięcie adresu URL (na przykład), okno dialogowe ujednoznacznienia nie będzie miało żadnego tytułu!
Albert Vila Calvo

10

Innym sposobem na usunięcie tytułu z twojego Toolbarjest nullwyrzucenie go w następujący sposób:

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

4

to

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

Możesz użyć dowolnego z poniższych, ponieważ oba działają w ten sam sposób: getSupportActionBar().setDisplayShowTitleEnabled(false); i getSupportActionBar().setTitle(null);

Gdzie używać:

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

Lub:

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

zwróć uwagę na tę linię getSupportActionBar().setDisplayShowTitleEnabled(false);


actionBar.addView (widok); to widok niestandardowy, który
dodam


1

Prawidłowy sposób na ukrycie tytułu / etykiety ToolBar to następujące kody:

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

1

Nie wiem, czy to właściwy sposób, czy nie, ale zmieniłem swój styl w ten sposób.

<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

jeśli używasz domyślnego paska narzędzi, możesz dodać tę linię kodu

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

1

To oczywiste, ale plik App Theme wybór w projekcie dotyczy tylko wyświetlenia szkicu podczas edycji układu, nie jest związany z prawdziwym wyglądem aplikacji w telefonie komórkowym. W moim przypadku nie ma paska tytułu w projekcie, ale pasek tytułu był zawsze w telefonie komórkowym.

Zaczynam od programowania na Androida i walczę o znalezienie odpowiedniego rozwiązania.

Sama zmiana pliku manifestu ( AndroidManifest.xml) nie wystarczy, ponieważ styl musi być wstępnie zdefiniowany styles.xml. Bezużyteczna jest również zmiana plików układu.

Wszystkie proponowane rozwiązania w moim przypadku Javalub Kotlinzawiodły. Niektóre z nich powodują awarię aplikacji. A jeśli ktoś (tak jak ja) nigdy nie zamierza używać paska tytułu w aplikacji, rozwiązanie statyczne jest czystsze.

Dla mnie jedynym rozwiązaniem, które działa w 2019 roku (Android Studio 3.4.1) jest:

w styles.xml(pod app / res / values) dodaj wiersze:

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

Po w AndroidManifest.xml (pod aplikacją / manifestami)

Zastąpić

android:theme="@style/AppTheme">

przez

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

0

Nikt nie wspomniał:

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

Przeczytaj uważnie pytanie przed udzieleniem odpowiedzi. OP poprosił o usunięcie tytułu z paska narzędzi
Bhavik Mehta,


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.