лишить законной силы только один вид - PullRequest
1 голос
/ 19 мая 2019

Я разрабатываю игру для платформы Android только для развлечения.У меня есть два перекрывающихся представления, и когда я вызываю invalidate в одном из них, другое тоже перерисовывается.Мне не нужно перерисовывать второе представление, мне просто нужно применить к нему перевод, но без перерисовки.Как мне этого добиться?

1 Ответ

0 голосов
/ 19 мая 2019

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

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

...