2013-03-13 22 views
5

Ho notato uno sfarfallio piuttosto fastidioso che si verifica nel seguente scenario: visualizza un'attività a schermo intero e quindi avvia un'altra attività che non è a schermo intero.sfarfallio della barra di stato quando si esce dall'attività a schermo intero

Nella mia app utilizzo una barra delle azioni nella parte superiore della seconda attività e vedo chiaramente come si verifica uno sfarfallio quando si passa da un'attività all'altra.

Quando appare la barra di stato, non spinge la mia attività senza problemi, ma molto velocemente e con questo fastidioso sfarfallio.

C'è qualche API che posso usare per controllare questo comportamento? Oppure qualche altra soluzione?

risposta

7

Ho avuto lo stesso problema. Sotto soluzione, risolto questo problema, inserire questo codice prima di terminare la prima attività.

Handler handler = new Handler(); 
handler.post(new Runnable() { 
    @Override 
    public void run() { 
     YourActivity.this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 
    } 
}); 
+0

Se si risolve il problema, è possibile accettarlo come risposta –

+0

Questa è stata l'unica risposta che ha funzionato. Inserisco il codice seguente in Oncreate prima di setContentView. ... se (Build.VERSION.SDK_INT> = Build.VERSION_CODES.KITKAT) { getWindow() getDecorView() setSystemUiVisibility (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |.. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } ... E non dimenticare di inserirlo anche nel metodo overrideWindowFocusChanged. –