小编use*_*963的帖子

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);
Run Code Online (Sandbox Code Playgroud)

之后我就看不到我的 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 start
TextView tv = new TextView(this);
tv.setText("some …
Run Code Online (Sandbox Code Playgroud)

android ui-thread

5
推荐指数
1
解决办法
3284
查看次数

标签 统计

android ×1

ui-thread ×1