Come rimuovi il testo del titolo dalla ActionBar di Android?


106

Sto esaminando il Holo.Lighttema e non riesco a trovare lo stile magico da sovrascrivere per eliminare il testo del titolo che viene visualizzato brevemente al primo avvio della mia app.

Come lo posso fare?

Risposte:


216

Provare:

 getActionBar().setDisplayShowTitleEnabled(false);

Per v.7:

 getSupportActionBar().setDisplayShowTitleEnabled(false);

22
vedrai ancora il titolo durante il caricamento della barra delle azioni, che non è quello che desideri. la soluzione giusta è quanto suggerito da m3n0R.
numan salati

12
dovrebbe essere getSupportActionBar () setDisplayShowTitleEnabled (false); per v7. altrimenti produrrà un'esecuzione con puntatore nullo
Amir

5
@numansalati Who is m3n0R? Ho cercato nella pagina e non ho trovato nulla
ka3ak

Quando dovrei chiamare i metodi? Voglio dire da quale metodo (attività, frammento) dovrebbe essere chiamato?
ka3ak

94

Penso che questa sia la risposta giusta:

<style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="android:displayOptions">showHome|useLogo</item>
    <item name="displayOptions">showHome|useLogo</item>
</style>

E per quanto riguarda Android 4? Non sto usando ActionBarSherlock quindi non c'è una risorsa denominata Widget.Sherlock.Light.ActionBar.Solid.Inverse. Quale genitore dovrei usare?
Alex Semeniuk

Tema Holo. Di default ci sono 3 temi olografici su cui puoi estendere.
cesards

Funziona per nascondere il titolo al primo avvio. In un'altra attività la chiamata setTitle non funziona. C'è un modo per scambiare gli stili della barra delle azioni in fase di esecuzione?
speedynomads

impostazione del tema predefinito in runtime :)
cesards

@ domji84, puoi specificare il tema di ogni attività nel file manifest.
Ashishduh

63

Sono molto nuovo su Android quindi correggimi se sbaglio, ma penso che se decidi di utilizzare le schede di navigazione sulla barra delle azioni, sembra che non siano completamente allineate a sinistra perché il colore del testo del titolo è solo trasparente e non ha ' t andato via.

<style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
     <item name="android:displayOptions">useLogo|showHome</item>
</style>

ha funzionato per me.


sì, ti sbagli, nessuna scheda in questione e nessuna luce olografica nella tua risposta
miky

Mentre sto provando, ricevo questo errore, @android: style / Widget.Holo.ActionBar richiede il livello API 11 (il minimo attuale è 10).
jrhamza

Se voglio assegnare questo stile alla barra delle azioni di un'attività specifica e non per tutte le attività della mia applicazione. Come posso farlo? dove metto la riga "android: displayOptions"? in Menu.xml? In AndroidMenifest.xml?
GyRo

43

Fatto. Devi eseguire l'override

android:actionBarStyle

e poi nel tuo stile personalizzato devi sovrascrivere

android:titleTextStyle

Ecco un esempio.

Nel mio themes.xml:

<style name="CustomActionBar" parent="android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
</style>

E nel mio styles.xml:

<style name="CustomActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
        <item name="android:titleTextStyle">@style/NoTitleText</item>
        <item name="android:subtitleTextStyle">@style/NoTitleText</item>
</style>

<style name="NoTitleText">
        <item name="android:textSize">0sp</item>
        <item name="android:textColor">#00000000</item>
</style>

Non sono sicuro del motivo per cui impostare textSize su zero non ha funzionato (ha ridotto il testo, ma non lo ha fatto sparire), ma impostare textColor su opere trasparenti.


3
Sì, questo ha aiutato. Qualche idea sul perché android:visibility=gonenon ha effetto? O meglio ancora, perché setDisplayShowTitleEnabledmostra ancora il testo del titolo durante il caricamento della barra?
Matthias

7
Utilizza <item name = "android: displayOptions"> useLogo | showHome </item> invece di impostare la dimensione su 0
Jerome VDL

23

Nel tuo file manifest

<activity android:name=".ActivityHere"
     android:label="">

33
Funziona, ma interromperà la visualizzazione della tua app nel selettore "App utilizzate di recente"
Rupert Bates

1
questo fa sì che l'app non abbia un nome sulle applicazioni del telefono / schermata principale
Nimitack

13

Scrivi questa dichiarazione sotto

setContentView(R.layout.activity_main);

getSupportActionBar().setDisplayShowTitleEnabled(false);

se si estende l'uso di AppCompactActivity getSupportActionbar()se si estende l'uso di attività, getActionBar()altrimenti potrebbe dare

null pointer exception

usando android:label=""in AndroidManifest.xml per l'attività funziona anche, ma la vostra applicazione non apparirà inRecently used apps


9

hai due scelte:

prima:

getActionBar().setDisplayShowTitleEnabled(false);

Se usign ha getActionBar()prodotto un'eccezione del puntatore nullo, dovresti usare getSupportActionBar()

Second

getSupportActionBar().setTitle("your title");

o

getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().hide();

6

io uso questo codice nel manifesto dell'app

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/logo2"
        android:label="@string/title_text"
        android:theme="@style/Theme.Zinoostyle" >

il mio file del logo è di 200 * 800 pixel e utilizza questo codice in main activity.java

getActionBar().setDisplayShowTitleEnabled(false);

funzionerà correttamente


6

Ho provato questo. Questo aiuterà -

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

getSupportActionBar dovrebbe essere chiamato dopo setSupportActionBar, impostando così la barra degli strumenti, altrimenti, NullpointerException perché non è impostata alcuna barra degli strumenti. Spero che questo ti aiuti


5

Puoi modificare lo stile applicato a ciascuna attività o, se desideri modificare il comportamento solo per un'attività specifica, puoi provare questo:

setDisplayOptions(int options, int mask) --- Set selected display 
  or
setDisplayOptions(int options) --- Set display options.

Per visualizzare il titolo sulla barra delle azioni, impostare le opzioni di visualizzazione in onCreate ()

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);

Per nascondere il titolo sulla barra delle azioni.

getSupportActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);

Dettagli qui .


3

L'unica cosa che ha funzionato davvero per me è stata aggiungere:

<activity 
    android:name=".ActivityHere"
    android:label=""
>

beh, era la risposta "sbagliata", tuttavia mi ha aiutato con un caso simile :)
Javier

1
Non farlo perché bloccherà l'applicazione quando viene ridotta a icona
jfcartier

3
getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().hide();

spero che questo possa aiutare


2

Utilizza il seguente:

requestWindowFeature(Window.FEATURE_NO_TITLE);

Non puoi farlo se stai usando ActionBar. Se provi a farlo, l'app andrà in crash immediatamente quando si apre.
Christopher Perry

@ChristopherPerry non è vero. puoi usarlo per rimuovere la barra delle azioni nel codice, a condizione che tu lo faccia prima di chiamare setContentView.
numan salati

tuttavia, questo sta rimuovendo l'intera barra delle azioni invece del suo titolo!
bofredo

2

Se vuoi farlo solo per un'attività e forse anche dinamicamente, puoi anche usare

ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(actionBar.getDisplayOptions() ^ ActionBar.DISPLAY_SHOW_TITLE);

1

come soluzione alternativa, aggiungi questa riga in caso di azioni / barre degli strumenti personalizzate

this.setTitle("");

nella tua attività


1

Sebbene siano tutti accettabili, se la tua attività contiene solo un'attività principale, puoi modificare in questo res\values\styles.xmlmodo:

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

Ho aggiornato parente aggiunto la proprietà .NoActionBar al tema Light dalla Create Blank Applicationprocedura guidata di Android Studios .


Ciò disabiliterà l'intera barra delle azioni non solo il titolo. E se vuoi creare una barra delle azioni vuota, dovrai farlo per ogni singola vista.
AlwaysConfused

1

Estendi semplicemente il tuo file java da AppCompatActivitye fai questo:

ActionBar actionBar = getSupportActionBar(); // support.v7
actionBar.setTitle(" ");

0

Nella tua pagina manifest.xml puoi fornire l'indirizzo all'etichetta della tua attività. l'indirizzo è da qualche parte nei tuoi valori / strings.xml. quindi puoi modificare il valore del tag nel file xml in null.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title_main_activity"></string>
</resources>

0

Sono nuovo su Android, quindi forse mi sbaglio ... ma per risolvere questo problema non possiamo semplicemente andare al manifest e rimuovere l'etichetta dell'attività

<activity
        android:name=".Bcft"
        android:screenOrientation="portrait"

        **android:label="" >**

Ha funzionato per me ...


-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");

3
@Matteo Sebbene possa funzionare, è certamente impreciso e non è il modo giusto per farlo. In realtà, non rimuove effettivamente il testo del titolo, ma lo imposta semplicemente su "", in modo che tu non possa vederlo.
user1234
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.