13

Necesito hacer una de mis actividades llamada MyNoStatusBarActivity.java una actividad de pantalla completa.android: theme = "@ android: style/Theme.NoTitleBar.Fullscreen" funciona en el nivel de aplicación pero no en el nivel de actividad. ¿Cualquier pista?

he añadido en el Manifiesto:

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

Y en el onCreate de mi actividad:

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 

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

Haciendo todo esto sólo oculta la barra de título y no la barra de estado.

Además, si uso el tema del manifiesto en el nivel de la aplicación en lugar de mi actividad, funciona para todas las actividades de mi aplicación que no es lo que quiero. Quiero la barra de estado sin solo para una actividad en particular.

La ayuda será muy apreciada. ¡Thnx!

P.S: Estoy bien, este comportamiento ya no está disponible en Honeycomb/ICS. Necesito esto sólo por 2,2 y 2,3

EDITAR

intentado todas las sugerencias mencionadas en otras soluciones en el SO, pero sin éxito todavía. El tema funciona cuando se aplica al nivel de aplicación pero no en el nivel de actividad.

estoy usando HTC Wildfire-S, Android 2.3.5

ver

Respuesta

6

Creo que sólo tiene que tomar la android:theme="@android:style/Theme.NoTitleBar.Fullscreen fuera de la mainfest, seguir con código sólo llamar, siempre ha trabajado para mí. ¿Qué dispositivo de prueba estás usando?

También asegúrese de que estas llamadas vienen antes de llamar a setContentView(R.layout.xxx) como esto

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

Comprobar todo el código para android:theme declaraciones, es decir, se manifiestan y archivos XML presentaciones individuales. ya que suena como que declararlo a nivel de aplicación está funcionando (ya que está anulando cualquier declaración de tema posterior) pero hay algo que anula tu solicitud de nivel de actividad.

Prueba a buscar todo el proyecto para "android: tema" y eliminar cualquier cosa que usted no está 100% seguro de que necesita, prueba de esa manera

+0

esto debería funcionar para Android 2.x y por encima de –

+0

no funciona . Solo el título se desactiva pero la barra de estado permanece. Estoy usando HTC Wildfire-S, android versión 2.3.5 –

+0

De hecho, parece que la parte superior de la actividad va por debajo de la barra de estado. ¡La barra de estado parece tener algún tipo de índice Z alto y oculta una parte de mi actividad de pantalla completa! –

29

En su manifiesto XML, a nivel de aplicación poner esto:

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

y en la actividad que desea realizar pantalla completa poner esto:

<activity 

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

Eliminar todos los métodos setWindowsFeature o setflag en onCreate.

+0

lo siento, pero no hace este trabajo para android 2.3. ? – Dante

+1

Creo que sí. Solía ​​probar esto en Android 2.2 – Neoh

3

pongo esto en mi actividad:

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

Y en mi manifiesta no modificar, esto es mío, sin modificaciones:

android:theme="@style/AppTheme" 

En mi xml activty:

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

Esto hará el truco:

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

Esto solucionará su problema

solo cambio en su @android manifiesta: ... estilo de estilo @/..

<application 
    ... 
    android:theme="@style/Theme.AppCompat.NoActionBar"> 
    ... 
</application> 
Cuestiones relacionadas