, если view1
перекрывается с view2
, когда вы вызываете view1.invalidate();
, он будет перерисовывать каждый View
, который перекрывается с ним .. поэтому он будет вызывать view2.onDraw();
, и так как вы используете RelativeLayout
view1
и view2
возможно перекрывают друг друга.
обычно View
не может нарисовать «просто себя», поскольку это зависит от его родителя (который обеспечивает его обрезку и перевод Canvas
с помощью метода dispatchDraw
). Недействительность требует, чтобы все дерево представления было признано недействительным.