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

Bla*_*nes 7 user-interface android textview relativelayout

我有一个自定义视图(TextView的扩展),我想动态添加到我的布局(不想将它包含在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);
Run Code Online (Sandbox Code Playgroud)

Mat*_*adt 3

请在添加视图的位置发布您的代码。但是,是的,您可能缺少宽度和高度的参数。尝试类似的东西

LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.FILL_PARENT);    
txtView.setLayoutParams(p);
Run Code Online (Sandbox Code Playgroud)

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

  • 啊哈!我需要将“this”而不是 null 传递给自定义视图声明。我会将您的回复标记为答案,因为我确信我无论如何都需要参数:P 非常感谢。 (2认同)