所以我在运行时创建了ImageView和TextView,我希望TextView放在ImageView的右边。
我正在尝试这个简单的代码:
private void loadContent(Module module) {
this.removeAllViewsInLayout();
this.addView(getModuleIconView(module));
this.addView(getModuleNameView(module));
}
private ImageView getModuleIconView(Module module) {
ImageView view = new ImageView(context);
view.setImageResource(module.getIconResId());
android.view.ViewGroup.LayoutParams params = new LayoutParams(120, 120);
view.setLayoutParams(params);
view.setId(1); //seting some id for the view
return view;
}
private TextView getModuleNameView(Module module) {
TextView view = new TextView(context);
view.setText(module.getName());
params.addRule(RelativeLayout.RIGHT_OF, 1); //hoping for view to be placed right of the ImageView which id was set to 1
return view;
}
我在这做错了什么? TextView放在我的ImageView上,忽略了RIGHT_OF
需要提及该类继承自RelativeLayout
答案 0 :(得分:0)
这是我的愚蠢错误。第三种方法泄漏了setLayoutParams
所以正确的方法体是:
private TextView getModuleNameView(Module module) {
TextView view = new TextView(context);
view.setText(module.getName());
params.addRule(RelativeLayout.RIGHT_OF, 1);
view.setLayoutParams(params);
return view;
}