大佬教程收集整理的这篇文章主要介绍了addView方法后Android视图未显示,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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的参数.
TableLayout parent = (TalleLayout)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(500,50); TableRow.LayoutParams tlp = new TableRow.LayoutParams(500,50); TableRow tr = new TableRow(this); tr.addView(tv,tlp); parent.addView(tr,lp); parent.invalidate(); parent.requestLayout();
我发现了一件有趣的事情.此活动从TabHost运行.只有在此TabHost中首次选择“活动”时,才会显示“addView bug”.如果我第一次从另一个标签启动Activity,一切正常.
以上是大佬教程为你收集整理的addView方法后Android视图未显示全部内容,希望文章能够帮你解决addView方法后Android视图未显示所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。