android addview方法说明,addView方法后Android视图未显示

我有ViewGroup.addView()方法的问题.我使用此代码为我的布局添加新视图:

TalbeLayout parent = (TableLayout)findViewById(R.id.this_does_not_matter);

parent.removeAllViews(); //this view group contains something at start

TextView tv = new TextView(this);

tv.setText("some text");

TableLayout.LayoutParams lp = new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT);

tv.setLayoutParams(lp);

parent.addView(tv);

之后,我无法看到我的TextView.更重要的是,parent.getChildCount()返回正确的值(如果我尝试添加一个子节点,则返回1).在父视图的onClick()方法中,我尝试获取TextView的宽度和高度,所有这些都等于0.为TableView调用requestLayout(),invalidate()和measure(500,50)并且没有效果.我甚至尝试在view.post(Runnable)的帮助下添加新视图,尽管此代码在UI线程中执行.

我很困惑.我真的不明白会发生什么.有人可以解释一下我做错了什么吗?

一个有趣的时刻:

setLayoutParams()无效.如果我设置宽度= 500和高度= 50的参数,在onClick方法中我得到宽度= -1和高度= -1的参数.

TableRow添加后的代码&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值