【问题标题】:Android - Child order in Custom ViewGroupAndroid - 自定义 ViewGroup 中的子订单
【发布时间】:2012-02-16 11:00:50
【问题描述】:

我正在编写一个自定义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() 只是普通的香草,但我只是好奇为什么指示器是第一个孩子而不是寻呼机。

【问题讨论】:

  • 把你的代码放在这里....所以我可以准确地猜出你想要什么......!!!

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


【解决方案1】:

想通了。

视图只是按照添加到父级的顺序调用。

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

愚蠢的错误!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    相关资源
    最近更新 更多