2012-02-16 71 views
1

我正在编写自定义ViewGroup,它是其他视图的简单组合。但是,意见似乎是以任意的顺序。Android - 自定义ViewGroup中的子订单

我知道我可以实现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

把你的代码放在这里....所以我可以猜测你到底想要什么...... !!! – 2012-02-16 11:11:06

回答

0

想通了。

视图只是按它们被添加到父项的顺序调用。

在我的情况下,一个View在Z轴上高于另一个,而我认为它在Y轴上高于另一个,但这是因为Pager在指示器的顶部有一个空的空间看似合适。

愚蠢的错误!