Maybe this is related (turns out to also be a question):
What is the binding order relationship between the .kv file the the .py file.
Ass some have noticed, sub-children in the .kv file, may not yet be created at the time of the parent widget in the .py file, thus giving None to objects that are bound after the parent's __init__ function is called. [Note: this seems to be a case by case basis, e.g. in some of my code, the parent knows at init about its kids, but in other parts, returns None at the time of the parent init call]
Is there a way that the parent can know, when all of its children have been binded/made, and then do something?
(Note: 2 possible solutions I can think of (but I would like to know if there are better ways of getting around this): possible solution 1: would be a set a Clock.schedule in init of the parent to see if an item (child item) you are waiting to be bound is None, if it is, then re-schedule the clock some short time into the future. Only dismiss the clock, once said object is not None (and therefore finally bound) and of course do whatever extra initialisation steps you needed). possible solution 2: assuming the kid is observed, have a do_observedkid, wrap with a boolean in that function, so you can wrap in some extra initialisation code, at the time the parent becomes aware of this kid, then flip the boolean flag switch).