タブレット用のAndroid3.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)のビューのみが画面に表示されていることです。しかし、たとえば2番目の背景を設定すると、結果が表示されるため、両方のViewGroupがコンテンツに追加されていることがわかります。ただし、2番目の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>