Android 当设置完全屏后,有时候屏幕会整体下移大概一个StatuBar的高度

 Android 当设置完全屏后,有时候屏幕会整体下移大概一个StatuBar的高度

 

这个问题我找了好久的原因,后来总算找到了一个解决的办法,但还是不知道具体的原因。

问题是这样的,我们的应用程序已经设置为全屏了,但有的时候整个屏幕会整体往下移动一定的距离,大概是一个StatuBar的距离,然后屏幕下面的内容就看不到了。但转换到其他界面,在跳回来,就恢复正常了。因为这是个偶然的BUG,找了好久原因没有找到,后来总算找到一个解决办法,但悲剧的是这个解决方法并不适合我们这应用。

 

先说解决方法吧:

当我们设置了全屏:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                		WindowManager.LayoutParams.FLAG_FULLSCREEN); 
                requestWindowFeature(Window.FEATURE_NO_TITLE);

设置完后,再设置一行如下所示:

// 修复全屏后有时屏幕会整体下移的问题,让StatusBar显示在可见屏幕外面。
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, 
        		WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 

这样内容会显示在屏幕外面了,就不会出现整体下移的问题了。

 

原因可能如下,但不确定:

可能是由于屏幕锁屏后,再重新进入程序,程序并没有重新创建新的Activity,当我们重新进入程序后,系统可能会自动上移或下移一个StatusBar或TitleBar的高度(我测试了下在1.5和1.6存在这问题)。

我们的程序在后台后,(因为我们的应用程序的对象不是重建),我们从splash 的onCreate 控制转移到最后一个可见的Activity(我们在一个静态变量保持 )。所以没有splash。
我们的所有Activity包括:
  android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
在1.0,1.1这正常工作。 在1.5中,当我们到了重新开始的活动,它是倒推状态/通知栏(这是一个黑色的区域)和宽度上G1轨迹球可以摆动整个屏幕和该数量 。看来一些测量已短路,或状态栏,一旦走了,但现在是透明的,或其他的什么东西。发生了什么变化。

 

解决方法的缺陷:

这样设置后,确实不会再出现屏幕整体下移那样的问题了,但新的问题也出现了,比如:有输入法弹出来的时候,屏幕不会向上滚动,这样看到的屏幕并不完整(还有其他的问题吧,具体的记不太清了好像是的。一个星期前的事了)。所以大家用的时候注意一下,看下如果解决了这问题会不会出现新的问题。

 

英文文章如下地址:

具体的可参见:http://groups.google.com/group/android-developers/browse_thread/thread/2de77043f32835aa/315d393bb8334db5?pli=1文章。

 

欢迎大家留言讨论。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值