Android 当设置完全屏后,有时候屏幕会整体下移大概一个StatuBar的高度
2012-01-18 17:07
218 查看
Android 当设置完全屏后,有时候屏幕会整体下移大概一个StatuBar的高度
这个问题我找了好久的原因,后来总算找到了一个解决的办法,但还是不知道具体的原因。
问题是这样的,我们的应用程序已经设置为全屏了,但有的时候整个屏幕会整体往下移动一定的距离,大概是一个StatuBar的距离,然后屏幕下面的内容就看不到了。但转换到其他界面,在跳回来,就恢复正常了。因为这是个偶然的BUG,找了好久原因没有找到,后来总算找到一个解决办法,但悲剧的是这个解决方法并不适合我们这应用。
先说解决方法吧:
当我们设置了全屏:
设置完后,再设置一行如下所示:
这样内容会显示在屏幕外面了,就不会出现整体下移的问题了。
原因可能如下,但不确定:
可能是由于屏幕锁屏后,再重新进入程序,程序并没有重新创建新的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文章。
欢迎大家留言讨论。
这个问题我找了好久的原因,后来总算找到了一个解决的办法,但还是不知道具体的原因。
问题是这样的,我们的应用程序已经设置为全屏了,但有的时候整个屏幕会整体往下移动一定的距离,大概是一个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文章。
欢迎大家留言讨论。
相关文章推荐
- android 状态栏、标题栏、屏幕高度 设置全屏的方法
- Android中 屏幕设置相关:全屏、居中、横竖、自适应
- android各种屏幕设置(全屏、横屏、竖屏...)
- Android 设置全屏 获得屏幕大小 显示Log
- Activity设置全屏以及Android获得屏幕的宽和高
- Android开发全程记录(八)——设置ImageView显示的图片铺满全屏(适应魅族等不常见屏幕比例)
- android自动适应屏幕三、在java代码中设置宽高度
- Android设置屏幕全屏和去除ActionBar
- Activity设置全屏以及Android获得屏幕的宽和高
- 【android】根据屏幕分辨率设置底栏高度
- android设置GridView高度自适应,实现全屏铺满效果
- Activity设置全屏以及Android获得屏幕的宽和高
- Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)
- Android中 屏幕设置相关:全屏、居中、横竖、自适应
- android整合--屏幕全屏 屏幕横竖屏设置
- android 动态设置屏幕控件宽高度
- android 设置 全屏显示 以及 设置屏幕横屏显示
- Activity设置全屏以及Android获得屏幕的宽和高
- 【Android】ListView监听上下滑动(设置滚动监听判断ListView的滚动方向同时获取屏幕高度、ListView实际高度,判断是否需要展示返回顶部按钮(具体逻辑请看代码--附有详细注释)。
- Activity设置全屏以及Android获得屏幕的宽和高