Per Child in ordinazione ViewGroup - Android
-
26-10-2019 - |
Domanda
Sto scrivendo un ViewGroup
personalizzato che è una semplice combinazione di altri punti di vista. Tuttavia, le opinioni sembrano essere in ordine arbitrario.
so di poter implementare il metodo getChildDrawingOrder()
ma ero curioso come l'ordine degli Visualizzazioni stata determinata in primo luogo?
UPDATE: Questa è un'implementazione minima e funziona, ma non so il motivo per cui l'indicatore è sempre in primo piano, non importa quello che faccio
public class PaginatedGallery extends ViewGroup {
ViewPager mPager;
CirclePageIndicator mPagerIndicator;
public PaginatedGallery(Context context) {
super(context);
mPager = new ViewPager(context);
mPagerIndicator = new CirclePageIndicator(context);
addView(mPager);
addView(mPagerIndicator);
}
public void setAdapter(PaginatedGalleryAdapter adapter) {
mPager.setAdapter(adapter);
mPagerIndicator.setViewPager(mPager);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
final int count = getChildCount();
for (int i = 0; i< count; i++ ) {
getChildAt(i).layout(l, t, r, b);
}
}
}
So che non sto implementando onMeasure()
e onLayout()
è solo plain vanilla, ma io sono solo curioso di sapere perché l'indicatore è il primo figlio e non il cercapersone.
Soluzione
capito.
Le viste sono semplicemente chiamati nell'ordine in cui sono stati aggiunti al genitore.
Nel mio caso, una vista era sopra l'altro su l'asse Z mentre io pensavo che era sopra l'altro su l'asse Y, ma questo è perché il cercapersone ha uno spazio vuoto in alto dove l'indicatore era apparentemente raccordo.
errore stupido !!