0

getDecorView().getWidth()用来确定我的 UI 中某些元素的大小。是的,我知道这是一种 hacky 方法,但我发现它是确定屏幕实际可用宽度的唯一可靠方法(例如,减去屏幕右侧可见的导航栏在 Kindle Fire HD 上横屏)。问题是当设备的方向发生变化时,立即调用此方法会导致值不正确。稍后调用相同的方法(通过发布延迟的可运行)返回正确的值,但这种方法有点像 hack 上的 hack。有没有办法找出装饰视图何时“准备好”向我返回正确的值?

4

1 回答 1

0

我相信,尽管如果您使用活动的 runOnUiThread 在 UI 线程上运行您的请求,我愿意犯错,它应该做您想做的事情,但事情只能在 UI 线程上按顺序发生,因此此调用将排队等待动画完成。

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        //code that needs to run on UI thread
    }
});
于 2012-11-15T22:45:27.703 回答