【发布时间】:2016-01-31 03:31:30
【问题描述】:
我写了一个函数,在我的TableLayout 中注入一行。
我的TableLayout 定义如下:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mytable"
android:layout_width="match_parent"
android:layout_height="match_parent">
</TableLayout>
这里是函数:
public void injectRow(String text, String result){
TableRow tableRow = new TableRow(this);
tableRow.setBackgroundColor(0xFF0000);
TableRow.LayoutParams tableParams = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT);
tableRow.setLayoutParams(tableParams);
Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, r.getDisplayMetrics());
TextView t1 = new TextView(this);
TableRow.LayoutParams t1params = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, Math.round(px), 0.65f);
t1.setText(text);
t1.setTextSize(20);
t1.setTextColor(0xFFF910);
t1.setGravity(Gravity.CENTER_VERTICAL);
t1.setLayoutParams(t1params);
tableRow.addView(t1);
TextView t2 = new TextView(this);
TableRow.LayoutParams t2params = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, Math.round(px), 0.35f);
t2.setText(result);
t2.setTextSize(20);
t2.setTextColor(0xFFF910);
t2.setGravity(Gravity.CENTER);
t2.setLayoutParams(t2params);
tableRow.addView(t2);
table.addView(tableRow, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
}
我尝试了不同的布局参数以及向行添加方向和背景颜色(红色)以查看文本视图是否只是不可见,但不。我也给 textviews 一个固定的高度,但是没有用..
所以出了什么问题?很多关于 SO 说要在 table.addview 中传递 TableLayout 参数,但这对我也不起作用......
【问题讨论】:
-
代码对我来说看起来很正确,如果您添加具有预设布局的行,或者您在 addView 中传递 -same-layoutparams 应该没有区别。我经常使用 TableLayout 没有问题......你到底有什么问题?你的文本视图没有显示? BTW--> 你使用的 setColor 是完全透明的,你试过 0xfffff910 和 0xffff0000 吗?
-
耶,回复!哦,是的,会尝试的。让我试一试。问题是表格布局仍然是空的,什么都看不见!
-
我不敢相信...我显示的一切都是透明的-.-请回答以便我可以接受...愚蠢的错误
-
哈哈别担心,一直在发生:D
标签: android android-tablelayout