我有一个应用程序,用户可以在其中拍照或从图库中选择图片。在下一页上,我使用onGlobalLayout
来确定 a 的大小View
。当用户从图库中选择图片时,View
尺寸会正确返回onGlobalLayout
。但是,当用户拍照时,Status Bar
顶部的 是不可见的。当下一个活动出现时,Status Bar
从顶部滑入会改变屏幕大小,但onGlobalLayout
不会考虑这一点,因此会返回错误的视图大小。
这似乎是 Android 的一个错误,我正在考虑提交错误报告。但是,有人对此有任何解决方法吗?
例子:
public class MyView extends View implements OnGlobalLayoutListener {
@Override
public void onGlobalLayout() {
Log.d("MyView", "Width: " + getWidth());
Log.d("MyView", "Height: " + getHeight());
}
}
上面的代码将返回两个不同的宽度和高度,具体取决于我返回的屏幕是否有状态栏。
谢谢