我想创建一个布局(参见下面的类 RosterPlayerView),其中包含一个带有文本的图像,然后在相对布局中多次实例化该视图。我使用相对布局而不是线性布局,因为布局会变得更加复杂。
当我第一次运行下面的代码(但没有 setId 调用)时,文本出现在图像上方。感谢这篇堆栈溢出文章,我发现相对布局需要唯一的小部件 ID 才能工作。但是当我添加 setId() 调用时,文本视图根本不显示。
我究竟做错了什么?
public class RosterPlayerView extends RelativeLayout {
ImageView imageView;
TextView textView;
static int layoutId = 100;
public RosterPlayerView(Context context, int playerId, Drawable photo) {
super(context);
imageView = new ImageView(context);
textView = new TextView(context);
addView(imageView, new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
imageView.setId(layoutId++);
RelativeLayout.LayoutParams timeLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
timeLayoutParams.addRule(RelativeLayout.BELOW, imageView.getId());
addView(textView, timeLayoutParams);
imageView.setImageDrawable(photo);
textView.setId(layoutId++);
textView.setText("0:00");
}
}