在运行时创建两个视图,并在第一个视图中放置一个视图

时间:2012-10-26 13:42:35

标签: android android-view

所以我在运行时创建了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

1 个答案:

答案 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;
}