OnLayout调用时的Android?

时间:2014-05-05 12:00:26

标签: android

我正在开发一个从View延伸的自定义ViewGroup。这意味着我需要实现onLayout方法。我认为当View在屏幕上显示时会调用此方法,但我认为这是不对的。

onLayout方法调用以及我需要在此方法中实现的内容时,您能解释一下吗?

它让我崩溃,因为我在Android SDK onLayout实现中看到了一个AdapterView,这让我感到困惑,因为没有使用此方法中的任何一个参数。

@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    mLayoutHeight = getHeight();
}

1 个答案:

答案 0 :(得分:2)

这种方法做了Javadoc所说的:

  

当此视图应指定大小和位置时,从布局调用   每个孩子。带子项的派生类应该覆盖   这个方法和他们每个孩子的呼叫布局。

换句话说,通过你的观点的孩子,并设置他们的位置和大小。在您要扩展的ViewGroup.java的参考文档中,有一个很好的example

还有一个training用于在Android开发者网站上创建自定义视图。