我想创建一个布局(请参阅下面的类RosterPlayerView),该布局包含一个带有文本的图像,然后在相对布局中多次实例化该视图。我使用相对布局而不是线性布局会变得更复杂。
当我第一次运行下面的代码(但没有setId调用)时,文本出现高于图像。感谢this stack overflow article我发现相对布局需要独特的小部件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");
}
}
答案 0 :(得分:0)
在将其添加到布局之前,尝试设置imageView
的ID。
您还可以在将LinearLayout
和imageView
添加到textView
RelativeLayout
。
答案 1 :(得分:0)
对于你想要做的事情,一个LinearLayout会简单得多。因此,就此而言,还要夸大XML布局。