Я пишу пользовательский 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()
просто ваниль, но мне просто любопытно, почему индикатор - это первый ребенок, а не пейджер.