何时在Layouting Process中调用onAttachedToWindow

时间:2015-11-17 14:05:34

标签: android android-layout android-lifecycle

我不确定onAttachedToWindow的使用情况。

我的问题基本上是关于documentation。 提及:

  

[...]可以在第一次onDraw之前的任何时间调用它 -   包括onMeasure(int,int)之前或之后

我该知道什么:

onMeasure之前调用它以及何时调用它。

背后的故事:

我在OnGlobalLayoutListener中添加了onAttachedToWindow,并在onDetachedFromWindow中将其删除。因为在将视图添加到窗口时,我以某种方式处理布局。 但我担心第一个onGlobalLayout调用会丢失,如果还没有添加Listener。 (因为onMeasure通常在布局期间发生)

如果有人对我的问题采取了更好的方法,请随时给我一个提示。

1 个答案:

答案 0 :(得分:3)

文档是正确的,您不应该依赖onWindowAttach/DetachonMeasureonLayout传递同步。

如果您的View课程对父级层次结构更改感兴趣,我会反对这样的设计。父UI应该通知子视图的层次结构更改。因此,OnGlobalLayoutListener最好由封闭的UI类使用。

此外,View类有onSizeChanged(),您可以覆盖它以检测何时进行测量。