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.

È stato utile?

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 !!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top