我以编程方式设置我的布局,因为我根据请求获得的图像填充它。我想要做的是在图像的右侧创建两个textview,在第一个下面创建第二个textview。根据我在其他答案中发现的结果,我的第二个文本视图与图像重叠并且不低于其他文本视图。
int counter = 0;
while(mList.size()!=counter)
{
RelativeLayout row = new RelativeLayout(context);
row.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
ImageButton imgBtn = new ImageButton(context);
Bitmap image = getImage(mList.get(counter));
imgBtn.setImageBitmap(image);
imgBtn.setId(counter + 1); // Because it need to be a positive integer.
imgBtn.setBackground(null);
imgBtn.setPadding(0, 0, 0, 0);
row.addView(imgBtn);
TextView firstText = new TextView(context);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.RIGHT_OF, imgBtn.getId());
lp.addRule(RelativeLayout.CENTER_IN_PARENT);
firstText.setLayoutParams(lp);
firstText.setId(counter+100);
row.addView(firstText);
TextView secondText = new TextView(context);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp2.addRule(RelativeLayout.BELOW,firstText.getId());
secondText.setLayoutParams(lp2);
row.addView(secondText);
++counter;
linlayout.addView(row);
}
答案 0 :(得分:1)
使用linearLayout而不是亲属。在此你不需要设置计数器和id。而是将setTag设置为视图。使代码更具可读性。
您可以设置行布局的方向,然后无需担心其他参数来定位视图。
我没有添加代码因为我知道你可以写得很好,只需改变方法。