2010-06-19 12 views
8

La mia app funziona correttamente a schermo intero quando viene avviata. Tuttavia, dopo aver ridotto al minimo e poi tornare all'app, la barra di stato si apre e sposta leggermente i miei punti di vista. Come posso impedire alla barra di stato di spostare le mie viste?Android: la barra di stato impedisce lo schermo intero

Ecco il mio layout:

<?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" 
/>  

Ecco parte della onCreate di mia attività:

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

Ho anche il tema a tutto schermo nel manifesto:

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

Grazie

+0

Quale versione di SDK stai usando? E stai eseguendo l'app nell'emulatore o in un vero telefono? Fa la differenza? –

+0

Ciao, hai trovato qualche soluzione al tuo problema? – kgnkbyl

risposta

0

Just android: theme = "@ android: style/Theme.NoTitleBar.Fullscreen" l'attributo sulla tua attività sul manifest è sufficiente. Speriamo i suoi lavori

+2

No. Ho questo nel manifest ma solo usando questo non aiuta. –

16

È possibile risolvere questo problema con:

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

(farlo in onCreate) .... nota quello interromperà la tastiera virtuale (IME) - poiché l'editoriale non può più scorrere in vista sopra la tastiera. Quella bandiera impedisce la finestra di muoversi a tutti ....

Se avete bisogno di un testo di modifica a lavorare anche mentre fissa il bug di stato si può fare

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

Ho riscontrato lo stesso problema in due diverse attività e questa soluzione era perfetta per me. Grazie! – honeal

+0

Hai idea di come può essere fatto in XML, non nel runtime? Vedi la mia domanda postata: http://stackoverflow.com/questions/11215180/how-to-make-activity-theme-with-windowmanager-layoutparams-flag-layout-no-limits – Vadim

+0

funziona per me. grande! –

0

ho avuto lo stesso problema. Ho cambiato l'attività per l'interstitial e cancellato: android: theme = "@ android: style/Theme.Translucent"

Problemi correlati