2010-06-19 17 views
8

Mi aplicación se ejecuta correctamente en pantalla completa cuando se inicia. Sin embargo, después de minimizar y luego volver a la aplicación, la barra de estado aparece y empuja mis vistas hacia abajo un poco. ¿Cómo puedo evitar que la barra de estado mueva mis vistas?Android: la barra de estado impide la pantalla completa

Aquí es mi diseño:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:myapp="http://schemas.android.com/apk/res/com.example.draw" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
    <com.example.draw.DrawView 
     android:id="@+id/draw" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:visibility="visible" 
     android:fitsSystemWindows="false" 
    />  
<com.admob.android.ads.AdView  
     android:id="@+id/ad" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     myapp:backgroundColor="#000000" 
     myapp:primaryTextColor="#FFFFFF" 
     myapp:secondaryTextColor="#CCCCCC" 
     android:layout_gravity="bottom" 
/>  

aquí es parte de onCreate de mi actividad:

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

También tengo el tema de pantalla completa en el manifiesto:

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

Gracias

+0

¿Qué versión de SDK estás usando? ¿Y ejecuta la aplicación en el emulador o en un teléfono real? ¿Hace una diferencia? –

+0

Hola, ¿Encontró alguna solución a su problema? – kgnkbyl

Respuesta

0

El solo android: theme = "@ android: style/Theme.NoTitleBar.Fullscreen" atributo en su actividad en el manifiesto es suficiente. Espero que sus trabajos

+2

No. Tengo esto en el manifiesto pero solo usar esto no ayuda. –

16

Puede solucionar este problema con:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 

(hacerlo en onCreate) .... nota que esto romperá el teclado virtual (IME), ya que el texto de edición ya no puede deslizarse a la vista sobre el teclado. Esa bandera evita que la ventana se mueva en absoluto ....

Si necesita una edición de texto para trabajar también al fijar el error de estado que puede hacer

someEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     public void onFocusChange(View v, boolean hasFocus) { 
      if (hasFocus) { 
       getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 
      } else { 
       hideKeyboard(); 
       getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 
      } 
     } 
    }); 
+0

Me encontré con el mismo problema en dos actividades diferentes y esta solución fue perfecta para mí. ¡Gracias! – honeal

+0

¿Tiene idea de cómo se puede hacer en XML, no en el tiempo de ejecución? Ver mi pregunta publicada: http://stackoverflow.com/questions/11215180/how-to-make-activity-theme-with-windowmanager-layoutparams-flag-layout-no-limits – Vadim

+0

funciona para mí. ¡estupendo! –

0

que tenía el mismo problema. Cambié la actividad para el intersticial y eliminé: android: theme = "@ android: style/Theme.Translucent"

Cuestiones relacionadas