我有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