2013-03-13 5 views
5

Ich bemerkte ein ziemlich irritierendes Flimmern, das in folgendem Szenario vorkommt: Anzeige einer Vollbildaktivität und dann Start einer anderen Aktivität, die nicht Vollbild ist.Statusleiste flackern beim Beenden der Vollbildaktivität

In meiner App verwende ich eine Aktionsleiste am Anfang der zweiten Aktivität und ich sehe deutlich, wie ein Flackern beim Wechseln zwischen den Aktivitäten erfolgt.

Wenn die Statusleiste erscheint, drückt sie meine Aktivität nicht so schnell runter, aber sehr schnell und mit diesem nervigen Flimmern.

Gibt es eine API, die ich verwenden kann, um dieses Verhalten zu steuern? Oder eine andere Problemumgehung?

Antwort

7

Ich hatte das gleiche Problem. Unten finden Sie die Problemumgehung, fügen Sie diesen Code ein, bevor Sie Ihre erste Aktivität beenden.

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

Wenn es Ihr Problem beheben können Sie dies akzeptieren als Antwort –

+0

Dies war die einzige Antwort, die funktionierte. Ich habe den folgenden Code in den Oncreate vor setContentView eingefügt. ... if (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); } ... Und vergessen Sie nicht, es auch in OnWindowFocusChanged Override-Methode zu setzen. –