将各种ViewGroup添加到一个Android布局

时间:2011-08-25 10:52:30

标签: android android-intent android-view

我有一个适用于平板电脑的Android 3.0应用程序。在这个应用程序中,我必须在布局上插入几个ViewsGroup,并且每个ViewsGroup都有几个视图。 以下是活动的onCreate代码:

    setContentView(R.layout.main);
    params = new LayoutParams(500, 600);
    ViewGroup v1 = new Bar(this);
    this.addView(v1,params);
    ViewGroup v2 = new Bar(this);
    this.addView(v2,params);

此Bar类扩展了ViewGroup,并在其中包含多个视图。问题是只有第一个ViewGroup(v1)的视图显示在屏幕上。但我可以看到它将两个ViewGroup添加到内容中,因为例如我可以设置第二个的背景,我将看到结果。但是第二个ViewGroup内的视图没有在屏幕上绘制。我试图改变顺序,v2首先,v2中的所有视图都被绘制,而v1中的视图没有。我认为它可能与Bar类中的onLayout方法有关,我将在下面提到:

@Override
protected void onLayout(boolean arg0, int arg1, int arg2, int arg3, int arg4) {
    for(int nI = 0; nI < this.getChildCount(); nI++){
        this.getChildAt(nI).layout(arg1, arg2, arg3, arg4);
    }

}

这种方法有问题吗?

我顺便使用了LinearLayout。

<LinearLayout android:background="#C6D7D2" android:orientation="horizontal" android:id="@+id/container" android:layout_width="wrap_content" android:layout_height="wrap_content"> </LinearLayout>

1 个答案:

答案 0 :(得分:0)

你也应该覆盖onMeasure()。您需要在那里设置setMeasuredDimension(w,h)。 w和h是在添加所有儿童尺寸后获得的条形高度和宽度。