我正在尝试将五个左右的 ImageView 添加到 RelativeLayout,每个新的都位于前一个的右侧。但是,我得到的是(显然)所有这些都堆叠在一起,就好像它们都是 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 示例中的构造函数设置它们。