我正在编写自定义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()
只是普通的香草,但我只是好奇为什么指标是第一个孩子而不是寻呼机。
答案 0 :(得分:0)
想出来。
只需按照将它们添加到父级的顺序调用视图。
在我的情况下,一个视图在Z轴上方位于另一个视图之上,而我认为它在Y轴上方位于另一个视图之上,但这是因为寻呼机顶部有一个空白区域,而指示器似乎是接头。
愚蠢的错误!!