动态地将视图添加到活动布局

时间:2010-08-18 19:11:30

标签: android user-interface textview relativelayout

我有一个自定义视图(TextView的扩展),我想动态添加到我的Layout中(不想将它包含在main.xml文件中)。

本书说我在我的java代码中使用findViewById()获取RelativeLayout然后创建我的自定义视图的新实例,然后在RelativeLayout上使用addView添加新视图。

我没有收到任何错误,但是当我点击我的按钮添加新视图时,没有任何事情发生(视图没有被添加)。我是否需要在自定义视图(例如布局宽度,布局高度)上设置其他属性才能显示它?

编辑:添加代码

// changed to an imageview as I thought it might be easier to see an image
RelativeLayout rel = (RelativeLayout) findViewById(R.id.rellay);
MyCustomImageView mciv = new MyCustomImageView(null);
mciv.setId(5);
LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
mciv.setLayoutParams(p);
mciv.setImageResource(R.drawable.someImage);
rel.Addview(mciv);

1 个答案:

答案 0 :(得分:3)

请在添加视图的位置发布代码。 但是,是的,你可能会错过宽度和高度的参数。尝试像

这样的东西
LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.FILL_PARENT);    
txtView.setLayoutParams(p);

或者您想要的宽度和高度。同样在xml布局中,layout_width和layout_height是必需属性。