最近才发现,项目在从启动页SplashActivity跳转到MainActivity时,发现MainActivity在出现但瞬间,状态栏会出现闪烁的问题,给人一种卡了一下的感觉,简直不能忍。
然后发现是因为SplashActivity 页面设置为全屏效果,而MainActivity则没有设置,是默认的非全屏效果设置,
这就导致从全屏跳转到非全屏界面的瞬间,顶部的状态栏突然跳出来,插入在屏幕顶端,造成页面出现一次蜜汁卡顿。
解决方法很简单,在 Activity 切换之前,把 Splash 页面的全屏通过以下代码取消掉即可。
/**
* 跳转之前需要退出全屏模式,解决从全屏到不是全屏的 Activity 的动画卡顿问题
*/
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
//跳转逻辑
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();