T
Size: a a a
T
QH
T
QH
<Button />DE
ViewGroup, у которой есть дети, то слушатель тригернётся только один раз, для самой ViewGroup. Дети - это вообще нафиг короче :Dvoid needGlobalAttributesUpdate(boolean force) у класса View. А дальше все просто. Этот метод, например, дергается при вызове метода dispatchAttachedToWindow.DE
A
A
AS
A
QH
IN
А
void needGlobalAttributesUpdate(boolean force) у класса View. А дальше все просто. Этот метод, например, дергается при вызове метода dispatchAttachedToWindow.AttachInfo "одно на окно", я пока не понял как это оно так работает. Вью действительно меняет mRecomputeGlobalAttributes каким - то хитрым if - ом в "своём экземпляре" mAttachInfo, и если эта та же AttachInfo, что и у ViewRootImpl, то окей. Под "та же" не подразумевается тот же инстанс, мб есть какая - то другая связь, хз.mRecomputeGlobalAttributes может засеттится в тру не только при аттаче вью, но и в адовом вьюшном методе setFlags(). Чтобы понять как он работает, надо кусок души отдать дьяволу. Хотя, если исходить из доков по globalListener, то очевидно, что слушатель тригернётся когда в setFlags прилетит visibility флаг(назовём это так), который у вьюхи visibility поменяет.AM

QH
w
AM
A
QH
AM