TalbeLayout parent = (tableLayout)findVIEwByID(R.ID.this_does_not_matter);parent.removeAllVIEws(); //this vIEw group contains something at startTextVIEw 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添加后的代码:
tableLayout parent = (TalleLayout)findVIEwByID(R.ID.this_does_not_matter);parent.removeAllVIEws(); //this vIEw group contains something at startTextVIEw 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,一切正常.
解决方法 我找到了解决方案如果关闭布局动画与androID:animateLayoutChanges =“false”一切正常.但我仍然不知道为什么会这样.如果有人知道这种行为的原因,那对我来说很有趣. 总结以上是内存溢出为你收集整理的addView方法后Android视图未显示全部内容,希望文章能够帮你解决addView方法后Android视图未显示所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)