2013-03-13 123 views
5

我注意到在以下情形中发生了一个非常令人不愉快的闪烁:显示全屏活动,然后启动另一个不是全屏的活动。退出全屏活动时状态栏闪烁

在我的应用程序中,我在第二个活动的顶部使用了一个操作栏,我清楚地看到在活动之间切换时闪烁是如何完成的。

当状态栏出现时,它不能平滑地推动我的活动,但很快,并与这恼人的闪烁。

是否有一些我可以用来控制这种行为的API? 或其他一些解决方法?

回答

7

我有同样的问题。 下面的解决方法修复了它,在完成您的第一个活动之前放置此代码。

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

如果它解决了你的问题,你可以接受这个答案 – 2016-09-13 11:46:45

+0

这是唯一的解决办法。我将下面的代码放在setContentView之前的Oncreate中。 ... 如果(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 ); } ... 并且不要忘记把它放在onWindowFocusChanged覆盖方法中。 – 2017-04-10 19:51:31