13

Ho bisogno di fare una delle mie attività chiamate MyNoStatusBarActivity.java un'attività a schermo intero.android: theme = "@ android: style/Theme.NoTitleBar.Fullscreen" funziona a livello di applicazione ma non a livello di attività. Qualche indizio?

ho aggiunto nel Manifesto:

<activity 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
    android:name=".MyNoStatusBarActivity" 
    android:noHistory="true" 
    android:label="@string/app_name" 
    android:configChanges="touchscreen|keyboard|keyboardHidden|navigation|orientation"> 
    ... 
</activity> 

E nel onCreate della mia attività:

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 

    getWindow().setFlags(
     WindowManager.LayoutParams.FLAG_FULLSCREEN, 
     WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 

Facendo tutto questo solo nasconde la barra del titolo e non la barra di stato.

Anche se uso il tema manifest a livello di applicazione invece della mia attività, funziona, ma per tutte le attività della mia app che non è quello che voglio. Voglio la barra di stato no solo per una determinata attività.

L'aiuto sarà molto apprezzato. Thnx!

P.S: I am ok questo comportamento non è più disponibile in Honeycomb/ICS. Ho bisogno di questo solo per 2.2 e 2.3

EDIT

provato tutti i suggerimenti di cui altre soluzioni in SO, ma senza successo ancora. Il tema funziona quando viene applicato a livello di applicazione ma non a livello di attività.

sto utilizzando HTC Wildfire-S, Android ver 2.3.5

risposta

6

Credo non vi resta che prendere il android:theme="@android:style/Theme.NoTitleBar.Fullscreen fuori dal Mainfest, bastone con codice di chiamata solo, è sempre lavorato per me. Quale dispositivo di test stai usando?

anche assicurarsi che queste chiamate vengono prima si chiama per setContentView(R.layout.xxx) come questo

super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.xxx); 

controllare tutto il codice per android:theme dichiarazioni, cioè manifeste e singoli file xml layout. come sembra dichiararlo a livello di app funziona (dato che ignora qualsiasi successiva dichiarazione di temi) ma c'è qualcosa che sovrascrive la richiesta del livello di attività.

Prova a cercare l'intero progetto per "Android: tema" e rimuovere tutto ciò che non si è sicuri al 100% è necessario, verificare in questo modo

+0

questo dovrebbe funzionare per Android 2.x e soprattutto –

+0

non lavorare . Solo il titolo si spegne ma rimane la barra di stato. Sto usando HTC WildFire-S, Android versione 2.3.5 –

+0

Infatti sembra che la parte superiore dell'attività sta andando sotto la barra di stato. La barra di stato sembra avere una sorta di alto indice z e nasconde una parte della mia attività a schermo intero! –

29

Nella tua xml manifesta, a livello di applicazione mettere questo:

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

e l'attività che si vuole fare tutto schermo mettere questo:

<activity 

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

Rimuovere tutti i metodi setWindowsFeature o setflag in onCreate.

+0

scusa, ma funziona per Android 2.3 ? – Dante

+1

Credo di sì. Ho usato per testare questo su Android 2.2 – Neoh

3

Ho messo questo nella mia attività:

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

E nel mio manifesto non modificare, questo è mio, senza modifiche:

android:theme="@style/AppTheme" 

Nel mio activty xml:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
0

Questo farà il trucco:

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

Ciò risolverà il vostro problema

solo cambiamento nella vostra @android manifesta: lo stile ... per @ stile/..

<application 
    ... 
    android:theme="@style/Theme.AppCompat.NoActionBar"> 
    ... 
</application> 
Problemi correlati