我正在使用getDecorView().getWidth()
来确定我的UI的某些元素的大小。是的,我知道这是一个hacky方法,但我发现它是唯一可靠的方法来确定屏幕的实际可用宽度(例如,减去屏幕右侧可见的导航栏在风景上的Kindle Fire HD)。问题是当设备的方向发生变化时,立即调用此方法会导致错误的值。在一瞬间(通过发布延迟的runnable)调用相同的方法会返回正确的值,但这种方法在黑客攻击之上是一种黑客攻击。有没有办法找出装饰视图何时“准备好”才能将正确的值返回给我?
答案 0 :(得分:0)
我相信虽然我愿意错误,如果你使用活动的runOnUiThread在UI线程上运行你的请求它应该做你想要的,事情只能在UI线程上顺序发生,所以这个调用将排队等到动画完成。
runOnUiThread(new Runnable() {
@Override
public void run() {
//code that needs to run on UI thread
}
});