Android - Custom ViewGroup中的子订单

时间:2012-02-16 11:00:51

标签: android android-layout android-view android-custom-view

我正在编写自定义ViewGroup,这是其他视图的简单组合。但是,视图似乎是任意顺序。

我知道我可以实现getChildDrawingOrder()方法,但我很好奇是如何确定视图的顺序?


更新:这是一个最低限度的实施,它可以运作,但我不知道为什么无论我做什么指标总是在顶部

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()只是普通的香草,但我只是好奇为什么指标是第一个孩子而不是寻呼机。

1 个答案:

答案 0 :(得分:0)

想出来。

只需按照将它们添加到父级的顺序调用视图。

在我的情况下,一个视图在Z轴上方位于另一个视图之上,而我认为它在Y轴上方位于另一个视图之上,但这是因为寻呼机顶部有一个空白区域,而指示器似乎是接头。

愚蠢的错误!!