Come rimuovo la barra del titolo dalla mia app?


90

Nella mia app c'è questa barra del titolo in alto dove sarebbe il menu di overflow, ma non ho bisogno di impostazioni e ho solo una schermata. Quando cambio il tema come descritto in molte altre domande ottengo il vecchio tema 2.2. Voglio avere il tema moderno solo senza la barra in alto.

Risposte:


156

Vai a styles.xml e cambia .DarkActionBarper.NoActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
</style>

diventa

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
</style>

se i colori sono irrilevanti per la tua app, puoi effettivamente optare per

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" />

1
Funziona come previsto. Tuttavia, il titolo scompare anche durante la visualizzazione di tutte le app attive.
IAbstract

come risolveresti questo @IAbstract?
Pablo Biedma

@ PabloBiedma: non lo so.
IAbstract

60

Nel file manifest Modifica:

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

4
Sebbene styles.xmlfunzioni , la modifica del file potrebbe essere un'opzione migliore per la maggior parte, poiché l'uso di questo metodo ignora tutti i valori che potrebbero essere stati impostati AppThemenel styles.xmlfile. La soluzione sotto che sostituisce la classe genitore con NoActionBarall'interno del styles.xmlfile conserva tutte le informazioni di stile preesistenti che sono state impostate.
Lemonseed

In tal caso, l'intero sfondo della mia app diventerà nero
Sajid khan

24
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

funziona onCreate()quando setContentView()viene invocato put before .

altrimenti si blocca


6
Ciò causa l'arresto anomalo dell'app. Ho messo la linea in mezzo super.onCreate.....e setContentView..... E si schianta
Nalorin

Questo non è il modo corretto per farlo. Il signor Torres l'ha spiegato bene.
Jithin Pavithran

16

Nel file styles.xml , cambia DarkActionBar in NoActionBar

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>


13

Controllare questo

 ActionBar actionBar = getSupportActionBar();
    actionBar.hide();

Questo è un codice funzionante per nascondere la barra da un programma stesso. Potrebbe essere posizionato nel costruttore onCreate(...)dopo le righe super.onCreate(..)e setContentView(...)per nascondere la barra subito dopo l'avvio del programma.
Milan Kerslager

9

Questo funziona per me

getSupportActionBar().hide();

8

Vai a Project -> app -> main -> res -> values ​​-> styles.xml

Modificare questa riga se si desidera eliminarla per ogni visualizzazione

 `<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">`

per

 `<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">`

se vuoi renderlo solo per una visualizzazione puoi cambiarlo nei tuoi dati manifest. Vai su Android -> manifesti -> AndroidManifest.xml. fare quanto segue:

  1. Cerca nella vista che desideri ottenere questo tipo di modifica <activity android:name"...">
  2. Inserisci android:theme=""@style/Theme.AppCompat.NoActionBar"

Mi piace questa soluzione. A differenza dell'impostazione di NoActionBar nel manifest che obbliga a rimuovere qualsiasi tema (o stile) già applicato, ad esempio Theme.MyApp, con questa soluzione è possibile modificare Theme.MyApp e conservare poche personalizzazioni.
MasterJEET

7

Nel file manifest cambia in questo:

android:theme="@style/Theme.AppCompat.Light.NoActionBar" >

7

Questo funzionava per me values/styles.xmlsull'aggiunta di elementi:

       `<item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>`

4
  1. apri styles.xml
  2. inserire
 <style name="no_title" parent="AppTheme">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowContentOverlay">@null</item>
 </style>

puoi cambiare nome = "---------"

  1. apri Androidmaifest.xm

    trova android: theme = "@ style / AppTheme" cambia in android: theme = "@ style / no_title"

  2. fai clic su seleziona Tema nella barra dei menu (è di colore verde vicino a MainActivity)

    • fare clic su Tema del progetto
    • fare clic su no_title (sul lato destro)
    • fare clic su OK

4

Per principianti come me. Basta fare quello che dico dal tuo progetto Android.

app -> res -> valori -> style.xml

sostituire questo codice

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

Godere.


3

eliminare quanto segue da activity_main.xml

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay"/>

contattami per ulteriore aiuto


2

fallo nel tuo file manifest:

<application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

mi passa al vecchio design Android (sfondo nero, caselle di testo con bordi gialli ...)
Jonas

prova ad android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"assicurarti di utilizzare il livello API minimo 14.
Rustam

Puoi usarlo per un tema leggero: android: theme = "@ style / Theme.AppCompat.Light.NoActionBar">
XIII

2

this.requestWindowFeature (Window.FEATURE_NO_TITLE);

in onCreate () funziona!


2

Prova a cambiare gli stili in NoActionBar, se non funziona aggiungi questo codice alla tua attività principale

 protected void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();
        setContentView(R.layout.activity_main);

    }

2

Questo funziona per me, spero che funzioni anche per te

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
}

1

Il modo migliore è usare la funzione barra delle azioni setTitle()se desideri mostrare il logo o avere altre cose nella tua actionBar ma non vuoi vedere il nome dell'app, scrivi questo codice in MainActivity.java o ovunque desideri nascondere il titolo onCreate:

android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setIcon(R.mipmap.full_white_logo_m); // display logo
actionBar.setTitle(""); // hide title

In questo modo la tua app non avrà motivo di bloccarsi.


1

Basta usare setTitle(null)sopra

toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

Il titolo scomparirà quindi potrai usare il logo che preferisci .....



1

Ho affrontato il tuo stesso problema e lo risolvo semplicemente cambiando la classe che ho esteso.

//you will get the app that does not have a title bar at the top.
import android.app.Activity;
public class MainActivity extends Activity
{}

//you will get the app that has title bar at top
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
{}

Spero che questo risolva il tuo problema.


0

Nella AndroidManifest.xmltua applicazione troverai android:themead esempio impostato su@style/AppTheme

Ora vai su styles.xml, trova il tag di stile, assicurati che il nome sia impostato AppThemecome nel manifest e imposta genitore su android:Theme.Holo.Light.NoActionBar (fallo anche in styles (v21) se lo hai nel tuo progetto)

<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar">
    <!-- ... -->
</style>


0

prova: toolbar.setTitle ("");

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle("");
    setSupportActionBar(toolbar);
}

Benvenuto in Stack Overflow! Per favore, non rispondere solo con il codice sorgente. Prova a fornire una bella descrizione su come funziona la tua soluzione. Vedi: come scrivo una buona risposta? . Grazie
sɐunıɔ ןɐ qɐp

0

Per rimuovere semplicemente la barra del titolo (il che significa che la barra contiene il nome della tua app) da un'attività, aggiungo semplicemente la riga sottostante a tale attività in manifests\AndroidManifest.xml:

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

Ora dovrebbe apparire come di seguito

<activity
  android:name=".MyActivity"
  android:theme="@style/AppTheme.NoActionBar"></activity>

Spero sia utile.


0
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getSupportActionBar().hide();

    setContentView(R.layout.activity_main);

Metti semplicemente getSupportActionBar().hide(); tra super.onCreatee setContentViewmetodo.

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.