RelativeLayout に 5 つほどの ImageView を追加しようとしています。新しいものはそれぞれ前のものの右側にあります。しかし、私が得たのは、(どうやら) それらがすべて ALIGN_PARENT_LEFT であるかのように、互いに積み重ねられていることです。関連するコード スニペット:
ImageView[] foo = new ImageView[levels];
for (int i = 0; i < levels; i++) {
foo[i] = new ImageView(context);
layoutFoo.addView(foo[i]);
foo[i].setId(10 + i);
if (i == 0) {
RelativeLayout.LayoutParams fooParams = (RelativeLayout.LayoutParams) foo[i].getLayoutParams();
fooParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
foo[i].setLayoutParams(fooParams);
} else {
RelativeLayout.LayoutParams fooParams = (RelativeLayout.LayoutParams) foo[i].getLayoutParams();
fooParams.addRule(RelativeLayout.RIGHT_OF, foo[i-1].getId());
foo[i].setLayoutParams(fooParams);
}
}
私が間違っていることのヒントはありますか?ImageViews に幅がないことは問題ではありません (ビットマップを割り当てていないため)。
編集: ImageView の高さと幅を設定していないことが問題であることが判明しました。解決策は、setLayoutParams() または JustWork の例のようにコンストラクターを使用して設定することです。