我有一个自定义视图(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);
答案 0 :(得分:3)
请在添加视图的位置发布代码。 但是,是的,你可能会错过宽度和高度的参数。尝试像
这样的东西LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.FILL_PARENT);
txtView.setLayoutParams(p);
或者您想要的宽度和高度。同样在xml布局中,layout_width和layout_height是必需属性。