Come disabilitare la barra delle azioni in modo permanente


138

Posso nascondere la barra delle azioni in nido d'ape usando questo codice:

getActionBar().hide();

Ma quando la tastiera si apre e l'utente copia e incolla qualsiasi cosa, la barra delle azioni viene nuovamente visualizzata. Come posso disabilitare permanentemente la barra delle azioni?


2
Trovato la risposta hhh <attività android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" ....>
Biji

1
che non è una barra delle azioni quando si tenta di copiare, incollare la vista predefinita.
Padma Kumar,

sì, ma dopo la fine della copia incolla, non è ancora scomparso
Biji

getSupportActionBar () hide ().;
Ameya Salagre,

Risposte:


252

Se stai usando Theme.Holo.Lighte vuoi usare la Theme.Holo.Light.NoActionBarvariante su dispositivi pre 3.2 puoi aggiungere questo al tuo styles.xml:

<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style> 

e quindi impostalo come tema della tua attività:

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

8
Questa è la risposta corretta Non rimuove i temi personalizzati come la soluzione di @ Biji.
phreakhead,

1
Hai idea di quale sarebbe il flag aggiuntivo da impostare nascondere la barra delle notifiche?
jesses.co.tt

1
Ho anche trovato necessario ereditare da FragmentActivity invece di ActionBarActivity.
Meanman,

4
@ jesses.co.tt La barra di notifica può essere rimossa utilizzando<item name="android:windowFullscreen">true</item>
Mike Baxter il

Questo non ha funzionato per me. Usato quanto segue: stackoverflow.com/questions/29790070/…
Christopher Smit

116

Impostando il tema delle attività in Manifest,

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>

questo sembra l'unico modo corretto per farlo. esp. se ti capita di avere un rapporto di parentela in fondo ...
jcfrei il

1
Questo è l'unico modo in cui posso mettermi al lavoro, sfortunatamente. Rimuove i temi personalizzati, ma è veramente l'unica cosa che rimuove completamente il ActionBar, per me.
RileyE,

3
Ciò non funziona con l'applicazione del tema AppCompat nel nuovo ADT. Non penso di combattere questo: cercare di sbarazzarti completamente di AppCompat è una buona soluzione! Ho provato l'approccio di @ monchote e funziona per me
ericn

dovrebbe essere <attività android: theme = "@ android: style / Theme.NoTitleBar"> invece di <attività android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen">
Amandeep Rohila

Su Samsung Galaxy J2 si blocca l'app, ma nessun problema su Nexus 9
Suici Doga,


30
<application
    .
    .
    android:theme="@android:style/Theme.Holo.Light.NoActionBar"
    . >

forse questo ti aiuta


3
Si noti che questo metodo richiede un minimo di api livello 13
Olumide

23

Con la superclasse Activity generata per impostazione predefinita di Android Studio è ActionBarActivitye quindi nessuna soluzione in altre risposte funziona. Per risolvere basta cambiare superclasse:

public class xxxActivity extends ActionBarActivity{

per:

public class xxxActivity extends Activity {

Questo è stato per me. Grazie per l'aiuto.
j_fulch,

17

Se vuoi ottenere lo schermo intero senza actionbar e titolo.

Aggiungilo in style.xml

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
      <item name="windowActionBar">false</item>
      <item name="windowNoTitle">true</item>
      <item name="android:windowFullscreen">true</item>
</style>

e usa lo stile su manifest.xml.

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

12

Il modo migliore che ho trovato che offre temi personalizzati e nessuna barra delle azioni, è creare una SuperClass per tutte le attività nel mio progetto e nella sua onCreate () chiama la seguente riga di codice:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

Funziona sempre per me. L'unico problema di questo approccio è che vedrai la barra delle azioni per una frazione di secondo all'avvio dell'app (non l'attività, l'app completa).


12
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    getSupportActionBar().hide();
}

12

Vai a styles.xml Cambia questo DarkActionBar in NoActionBar

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

7

Puoi forzare a nascondere semplicemente la barra delle azioni:

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

Usa il tuo tema predefinito.


7

Se vuoi solo un tema senza barra delle azioni puoi usare la variante 'NoActionBar', ad es. se il tema di base è il seguente

<!-- Base application theme. -->
<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>

allora puoi usare

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

Ma se vuoi conservare le proprietà del tuo tema principale, ad esempio AppTheme, puoi fare come di seguito

<style name="AppThemeNoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

Puoi conservare tutte le proprietà del tuo tema di base in questo modo e non devi aggiungerle esplicitamente nel tuo tema NoActionBar :)


6

Non utilizzare il tema Holo e la barra delle azioni scomparirà. Questo codice funziona per me su API 8+, con supporto lib v7:

<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>

imposta quel tema per la tua attività:

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

e nella tua classe di attività.

Funziona anche quando estende ActionBarActivity.


6

Sotto res -> valori -> styles.xml

Modificare

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

Per

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


5

Ecco una soluzione rapida.

Trovi styles.xml e cambi il tema dell'applicazione di base in "Theme.AppCompat.NoActionBar" come mostrato di seguito.

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
</style>

3

Di seguito sono riportati i passaggi per nascondere permanentemente la barra delle azioni:

  1. Apri app / res / valori / styles.xml.
  2. Cerca l'elemento di stile che si chiama "apptheme". Dovrebbe apparire simile a <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">.
  3. Ora sostituisci il genitore con qualsiasi altro tema che contenga "NoActionBar" nel suo nome.

    un. Puoi anche controllare l'aspetto di un tema passando alla scheda di progettazione di activity_main.xml e quindi provando ogni tema fornito nell'elenco a discesa dei temi dell'interfaccia utente.

  4. Se MainActivity estende AppCompatActivity , assicurati di utilizzare un tema AppCompat.


3

Digita questo codice nel tuo onCreatemetodo prima di setContentView:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);

3

Vorrei pubblicare piuttosto un approccio di Designer a questo, questo manterrà il design separato dalla tua logica aziendale:

Passaggio 1. Crea un nuovo stile in (res-> valori-> styles.xml): Fondamentalmente si tratta di una copia del tuo schema generale con diversi parent - parent = "Theme.AppCompat.Light.NoActionBar"

<!-- custom application theme. -->
    <style name="MarkitTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimary</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="android:windowNoTitle">true</item>
    </style>

Passaggio 2: Nel tuo AndroidManifest.xml, aggiungi questo tema all'attività che desideri: ad esempio, voglio la mia attività principale senza barra delle azioni, quindi aggiungi questo come di seguito:

<activity android:name=".MainActivity"
            android:theme="@style/MarkitTheme">

Questa è la soluzione migliore per me dopo aver provato molte cose.


2

nella funzione onCreate aggiungi il seguente codice

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

e importa semplicemente android.support.v7.app.ActionBar


2

Assicurati di creare un nuovo tema modificando il nome del tema predefinito nel styles.xmlfile in:

 <style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">

e di cambiare il tema dal menu a discesa sotto main_activity.xmla quello che hai chiamato il tuo tema.


1

Un'altra soluzione interessante in cui si desidera conservare ViewPager mentre si rimuove la barra delle azioni è avere uno stile come mostra

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:actionBarStyle">@style/NoActionBarStyle</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
    <item name="android:backgroundSplit">@null</item>
    <item name="android:displayOptions"></item>
</style>

Questo è il modo in cui la maggior parte delle applicazioni Dialer in Android mostra ViewPager senza la barra delle azioni.

Rif: https://github.com/CyanogenMod/android_packages_apps_Dialer


questa soluzione lascia in cima un'area bianca.
Felipe FMMobile

Questo ha funzionato per me su Android 2.3 con Theme.AppCompat.Light se ho cambiato il genitore NoActionBarStyle in @ style / Widget.AppCompat.ActionBar.TabBar (sto usando un ViewPager)
TouchBoarder

1

prova questo nel tuo manifestista

 <activity
        android:name=".MainActivity"
        android:theme="@android:style/Theme.Holo.NoActionBar"
        android:label="@string/app_name" >

1
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   android.support.v7.app.ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.hide();
    }
    setContentView(R.layout.activity_main);

1

Esistono due modi per disabilitare ActionBarin Android.

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main); 

1

Usa questo nel styles.xmlfile:


<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>

0

Io uso questa soluzione:

nel manifest, all'interno del tag attività:

android:label="@string/empty_string"

e in strings.xml:

<string name="empty_string">""</string>

In questo modo mantieni ActionBar (o Toolbar) con il titolo, ma quando Activity se creato il titolo è automaticamente vuoto.


0

Stranamente, nessuno di questi ha funzionato per me quando si è basato su un Nexus 7 con 4.4.2 (API 19). Per la maggior parte, almeno con l'ultima versione di Android Studio (1.2.1.1) dopo aver creato un'app di attività vuota, il:

android: theme = "@ stile / AppTheme"

è nell'elemento application, non nell'elemento attività. Se ho rimosso il codice sopra o ho provato a cambiarlo in:

android: theme = "@ Android: Stile / Theme.Holo.Light.NoActionBar"

l'app non funzionerà ... se ti sta succedendo, vai nel tuo file styles.xml (res> valori> styles.xml) e aggiungi .NoTitleBar alla fine del genitore come questo blocco:

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

Non sono necessarie modifiche al file AndroidManifest.


0

Nel tuo activity_main.xml, puoi regolare da lì nella linea:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
    android:theme="@style/Theme.Design.Light.NoActionBar"
.......    
">

A volte, quando riesci a vedere cose come questa , fai clic qui , puoi selezionare da qui il tema "noActionBar".

Spero che ti abbia aiutato.

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.