2013-03-13 11 views
5

Zauważyłem dość irytujące migotanie, które występuje w następującym scenariuszu: wyświetl pełnoekranową aktywność, a następnie uruchom inną aktywność, która nie jest w trybie pełnoekranowym.pasek statusu miga podczas wychodzenia z trybu pełnoekranowego.

W mojej aplikacji używam paska działań u góry drugiego działania i wyraźnie widzę, jak migotanie jest wykonywane podczas przełączania między czynnościami.

Po wyświetleniu paska stanu nie powoduje to płynnego obniżenia aktywności, ale bardzo szybko i przy tym irytującym migotaniu.

Czy jest jakiś interfejs API, za pomocą którego można kontrolować to zachowanie? Lub inne obejście?

Odpowiedz

7

Miałem ten sam problem. Poniższe obejście naprawiło to, wpisz ten kod przed zakończeniem pierwszej aktywności.

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

Jeśli to rozwiąże problem, możesz zaakceptować to jako odpowiedź –

+0

To była jedyna odpowiedź, która zadziałała. Wstawiłem następujący kod w Oncreate przed setContentView. ... 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); } ... ... Nie zapomnij również o tym, aby zastosować metodę overrideWindowFocusChanged. –

Powiązane problemy