全屏跳转到非全屏Activity的问题

一直以来,绝大多数APP都会有一个全屏的闪屏页面,若干秒之后跳转到非全屏界面。然而最近发现一个问题,很多app也一直存在,只是从来没在意看过,就没发现。

效果图

可以看到第二个界面发生了状态栏抖动的情况。其实不在意,有时候真的看不出来什么。但是既然发现了就要解决。

刚开始也没什么好的方法,首先想到的就是网上搜索。看了很多方案,确也没有一个完美的方法。

全屏界面是刚进入的时候设置了全屏,没了状态栏,进入非全屏,状态栏肯定要显示,于是乎就发生了抖动的现象,这里采用的就是跳转之前退出全屏,这就才能保证状态栏不抖动。

效果图2

在仔细看状态栏,是不是发生了变化。

说明:这种方案虽然算不上完美,但较其他的方法来比较,也不失为一种好的解决方法吧。

如果谁有更好的方案,欢迎说一下,学习学习。

相关代码

全屏

1
2
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

非全屏

1
2
3
4
5
6
7
8
9
10
11

@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
startActivity(new Intent(MainActivity.this, Seond.class));
break;
}
}