9

Qual è il modo corretto di rimuovere la barra delle azioni all'interno di un'attività?Holoeverywhere: come rimuovere a livello di codice in fase di esecuzione la barra delle azioni da un'attività

La mia attività si estende org.holoeverywhere.app.Activity

ho una classe di un'applicazione personalizzata che si estende org.holoeverywhere.app.Application ed a dirigenti di avvio di questo codice statico:

ThemeManager.setDefaultTheme(ThemeManager.DARK); 
ThemeManager.map(ThemeManager.DARK, R.style.Holo_Demo_Theme); 
ThemeManager.map(ThemeManager.LIGHT, R.style.Holo_Demo_Theme_Light); 
ThemeManager.map(ThemeManager.MIXED, R.style.Holo_Demo_Theme_Light_DarkActionBar); 
ThemeManager.map(ThemeManager.DARK | ThemeManager.FULLSCREEN, R.style.Holo_Demo_Theme_Fullscreen); 
ThemeManager.map(ThemeManager.LIGHT | ThemeManager.FULLSCREEN, R.style.Holo_Demo_Theme_Light_Fullscreen); 
ThemeManager.map(ThemeManager.MIXED | ThemeManager.FULLSCREEN, R.style.Holo_Demo_Theme_Light_DarkActionBar_Fullscreen); 

in la mia attività:

protected void onCreate(Bundle savedInstanceState) { 

    ThemeManager.removeTheme(this); 
    setTheme(ThemeManager.DARK | ThemeManager.FULLSCREEN); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 

se aggiungo requestWindowFeature(Window.FEATURE_NO_TITLE) nel codice, su un android 4.1.1 -table- la barra viene rimossa su un telefono -android 2.3.3 - la barra non viene rimossa.

Prima di introdurre holoeverywhere tutto ha funzionato bene con appena requestWindowFeature(Window.FEATURE_NO_TITLE).

Qual è il modo corretto per rimuovere in fase di esecuzione l'ActionBar in holoeverywhere? (voglio farlo in fase di esecuzione perché l'utente ha la possibilità di impostare un layout scuro o chiaro, con un valore predefinito DARK)

risposta

23

Vedere flag ThemeManager.NO_ACTION_BAR. O semplicemente chiamare

getSupportActionBar().hide(); 
+0

Grazie Prototik, funziona. – Maxj

+0

Funziona anche con setTheme (ThemeManager.DARK | ThemeManager.NO_ACTION_BAR); Stavo usando ThemeManager.FULLSCREEN invece di NO_ACTION_BAR – Maxj

2

si può fare programatically:

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Window; 
import android.view.WindowManager; 

public class ActivityName extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // remove title 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.main); 
    } 
} 

o si può farlo tramite il file AndroidManifest.xml:

<activity android:name=".ActivityName" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
</activity> 

ho aggiunto alcune linee in modo da poter mostrare a schermo intero, come sembra che è quello che vuoi.

+0

grazie per la risposta, ma nel tuo esempio non si sta usando la libreria holoeverywhere, ma il "puro" SDK di Android ... – Maxj

+0

Oh mi dispiace oculdn't aiutarti. Ho risposto con qualsiasi cosa avessi saputo. –

+0

Con l'SDK puro tutto funziona. Dopo aver presentato la libreria ho questo problema. Penso che sia un problema "stupido", ma la libreria non ha affatto documentazione! – Maxj

Problemi correlati