La risposta che si stanno ottenendo, come correttamente dedotto è a causa della barra di stato . Tutto quello che devi fare è sbarazzarti della barra di stato prima dell'avvio della visualizzazione della finestra. E quindi è possibile ripristinare la barra di stato prima di impostare la visualizzazione del contenuto dell'attività.
Il motivo per farlo in questo modo è che sbarazzarsi della barra di stato influisce sul disegno della vista a meno che non si gestiscano tutte le misure, layout e disegni dinamicamente. Fare questo è al centro del tuo runtime causerà la scomparsa della barra di stato, e poi riapparire se lo si desidera, con conseguente confusione dagli utenti.
per nascondere la StatusBar:
Nella tua onCreate():
final WindowManager.LayoutParams attrs = getWindow().getAttributes();
//Add the flag to the Window Attributes
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
getWindow().setAttributes(attrs);
//Disassociate Display from the Activity
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
Ora il vostro schermo di default dovrebbe funzionare correttamente
ancora nel vostro onCreate():
Display display = getWindowManager().getDefaultDisplay();
int w = display.getWidth();
int h = display.getHeight();
Ora, prima di impostare il contenuto
Anche in questo caso, nella vostra onCreate():
final WindowManager.LayoutParams attrs = getWindow().getAttributes();
//Show the statubar
attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setAttributes(attrs);
// Reassociate.
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
Infine:
setContentView(r.layout.myView);
I segmenti di codice precedenti funzionano quasi ovunque, in realtà . Sto solo pensando alla tua esperienza utente. Sentiti libero di metterli ovunque, naturalmente. Questi sono segmenti funzionali estratti da uno dei miei progetti. Ho visto tecniche simili anche in alcuni Home Launcher. Nota: a seconda della versione di Android, potrebbe essere necessario eseguire la barra di stato in onWindowAttached(). Se lo fai, assicurati di chiamare ancora super.onWindowAttached().
un'altra tecnica: Naturalmente, se si vuole fare questo in ogni caso, si può sempre impostare l'attributo di attività in questo modo nel vostro manifesto.
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
** @ alexanderblom ** Non è facile da spiegare per il mio caso. Ma ho davvero bisogno di ottenere altezza completa o barra di stato di Honeycomb. Grazie! – Levanphong7887