2012-02-16 10 views
1

私は他のビューの単純な組み合わせであるカスタムViewGroupを書いています。しかし、ビューは任意の順序であるように見えます。Android - カスタムビューグループの子オーダー

私はgetChildDrawingOrder()メソッドを実装できますが、ビューの順序が最初にどのように決定されたのか不思議でした。


UPDATE:これは最小の実装であり、それは動作しますが、インジケータは関係なく、私は私は私はありません

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); 
    } 

} 
} 

知っているものを上に常にではありませんなぜ私にはわかりませんonMeasure()onLayout()を実装するのは簡単なバニラですが、私はなぜインジケータがページャではなく最初の子であるのか不思議です。

+0

ここにコードを入れて....私はあなたが望むものを正確に推測することができます... !!! –

答えて

0

説明しました。

ビューは、親に追加された順に呼び出されます。

私の場合、1つのビューがZ軸上でもう一方のビューよりも上にありましたが、Y軸上では他のビューよりも上にあると考えていましたが、それはポケベルがインジケータ一見フィッティング。

愚かな間違い!

関連する問題