Junior — Middle
Vai jūs varat izskaidrot, kā darbojas onLayout metode View klasē un kādu lomu tas spēlē lietotāja saskarnes attēlošanas procesā?
sobes.tech AI
Atbilde no AI
View klases onLayout metode ir atbild par bērnu elementu izvietošanu pašā View iekšpusē. Tas tiek izsaukts sistēmas pēc tam, kad ir pabeigti izmēru mērījumi (onMeasure) un pirms zīmēšanas. Šajā metodē tiek noteiktas precīzas koordinātes (kreisais, augšējais, labais, apakšējais) katram bērnu View, nosakot, kur un kā tie tiks attēloti.
onLayout loma ir noteikt bērnu elementu pozīciju un izmēru, lai interfeiss izskatītos pareizi. Pielāgotās ViewGroup bieži pārdefinē šo metodi, lai īstenotu savu elementu izvietošanas loģiku.
Piemērs, kā pārdefinēt onLayout pielāgotā ViewGroup:
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
int childCount = getChildCount();
int currentTop = top;
for (int i = 0; i < childCount; i++) {
View child = getChildAt(i);
int childHeight = child.getMeasuredHeight();
child.layout(left, currentTop, right, currentTop + childHeight);
currentTop += childHeight;
}
}
Šeit bērni tiek izvietoti vertikāli viens zem otra.