Sobes.tech
Junior — Middle

Vai, izsaucot requestLayout() metodi, obligāti jāizsauc arī onDraw() metode?

sobes.tech AI

Atbilde no AI

Izsaukot requestLayout() metodi nenodrošina tūlītēju onDraw() izsaukšanu.

requestLayout() sāk pārskatīt View atrašanās vietu un izmērus, kas noved pie onMeasure() un onLayout() izsaukšanas. Pēc šo posmu veiksmīgas pabeigšanas sistēma lemj, vai ir nepieciešams pārkrāsot View, un, ja jā, tad izsauc onDraw().

Tādēļ onDraw() nav obligāti jāizsauc tūlīt pēc requestLayout(), bet tikai tad, ja izmaiņas prasa pārkrāsošanu.

Ja vēlaties piespiest pārkrāsošanu bez izmēru vai atrašanās vietas izmaiņām, izmantojiet invalidate(), kas tieši noved pie onDraw() izsaukšanas.