onMeasure()
, onLayout()
и onDraw()
.На шаге onMeasure() лэйаут передает желаемые значения размеров каждой дочерней view. View сохраняет размеры, которые позже используется при вызове
onLayout()
.При вызове
onLayout()
дочерние view располагаются на лэйауте с использованием размеров, полученных на шаге onMeasure()
.На шаге onDraw() происходит отрисовка дерева view.
Обычно в
LinearLayout
каждый из этих методов вызывается один раз, но при использовании атрибута weight – фаза onMeasure()
выполняется в два прохода. В этом случае перформанс LinearLayout
становится таким же как у RelativeLayout
.