为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何以编程方式向视图添加视图

请问如何以编程方式向视图添加视图

HUWWW 2019-10-22 17:12:37
如何以编程方式向视图添加视图假设我有一个LinearLayout,我想在我的程序中从Java代码中添加一个视图。这是用什么方法做的?我并不是在问XML是如何实现的,我知道XML是如何实现的,而是我如何按照这个示例代码的思路来做一些事情呢?(One View).add(Another View)就像挥杆一样。
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

呼叫addView这是正确的答案,但你需要做更多的事情才能让它发挥作用。

如果通过构造函数创建视图(例如,Button myButton = new Button();),你需要打电话setLayoutParams在新构造的视图上,在将新构造的子视图添加到父视图之前,传入父视图的LayoutParams内部类的实例。

例如,您可能在您的onCreate()函数假设您的linearLayout有id。R.id.main:

LinearLayout myLayout = findViewById(R.id.main);Button myButton = new Button(this);myButton.setLayoutParams(new LinearLayout.LayoutParams(
                                     LinearLayout.LayoutParams.MATCH_PARENT,
                                     LinearLayout.LayoutParams.MATCH_PARENT));myLayout.addView(myButton);

确保设置LayoutParams很重要。每个视图至少需要一个布局宽度和一个布局高度参数。同时,获得正确的内部类也很重要。在我发现没有将TableRow.LayoutParams的实例传递到子视图的setLayoutParams之前,我很难让视图添加到TableRow中以正确显示。




查看完整回答
反对 回复 2019-10-23
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

虽然为时已晚,但这可能会帮助某人:)以编程方式添加视图,请尝试如下


LinearLayout rlmain = new LinearLayout(this);      

LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT);          

LinearLayout   ll1 = new LinearLayout (this);


ImageView iv = new ImageView(this);

iv.setImageResource(R.drawable.logo);              

LinearLayout .LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);


iv.setLayoutParams(lp);

ll1.addView(iv);

rlmain.addView(ll1);              

setContentView(rlmain, llp);

这将以编程方式创建整个视图。您可以添加相同数量的视图。希望这能帮上忙。*)




查看完整回答
反对 回复 2019-10-23
  • 3 回答
  • 0 关注
  • 263 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号