Android - 将Rowview添加到TableLayout无法正常工作

时间:2014-03-18 13:18:27

标签: android android-tablelayout

我编写了一个在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参数,但这对我来说也不起作用......

1 个答案:

答案 0 :(得分:1)

你到处都使用透明色,setColor和setBackground都需要一个ARGB值,因此颜色为:0xFFFFF910和0xFFFF0000