我编写了一个在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));
}
我尝试了不同的布局参数以及向行添加方向和背景颜色(红色),以查看文本视图是否只是不可见,但不是。我也给了文本视图一个固定的高度,但没有用..
那么出了什么问题?很多关于SO的说法是在table.addview中传递TableLayout参数,但这对我来说也不起作用......
答案 0 :(得分:1)
你到处都使用透明色,setColor和setBackground都需要一个ARGB值,因此颜色为:0xFFFFF910和0xFFFF0000