我有一个自定义视图,可将可滚动位图绘制到屏幕上。为了初始化它,我需要传入父布局对象的像素大小。但是在 onCreate 和 onResume 函数中,Layout 还没有被绘制出来,所以 layout.getMeasuredHeight() 返回 0。
作为一种解决方法,我添加了一个处理程序来等待一秒钟然后测量。这可行,但它很草率,我不知道在绘制布局之前我可以修剪多少时间。
我想知道的是,如何检测何时绘制布局?有事件或回调吗?
原文由 Plastic Sturgeon 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以将树观察者添加到布局中。这应该返回正确的宽度和高度。
onCreate()
在子视图布局完成之前调用。所以宽度和高度还没有计算出来。要获得高度和宽度,请将其放在onCreate()
方法中: