tablelayout中动态添加的行(仍然)不可见

时间:2014-05-13 13:31:07

标签: android visibility android-tablelayout

我遇到与this one相同的问题。 不幸的是,那个问题的答案对我不起作用。

我知道行被添加到表中,我可以看到logcat中增加的行数。

但我在屏幕上看不到它们。

调查刷新(无效),颜色,尺寸,布局参数,......

......并且没有想法

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnAddRow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add row" />

    <TableLayout
        android:id="@+id/tableLayoutInventory"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:shrinkColumns="*"
        android:stretchColumns="*" >
            <TableRow
            android:id="@+id/tableRowTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/headerCol1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="ID"
                    android:textSize="16dp" />

                <TextView
                    android:id="@+id/headerCol2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Titre"
                    android:textSize="16dp" />

            </TableRow>

    </TableLayout>

</LinearLayout>

代码:

public void onClick(View v) {
TableRow row = new TableRow(this);
row.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

TextView tv = new TextView(this);
tv.setText("ID, row "+rownb);
tv.setHeight(16);
tv.setTextSize(16);
tv.setTextColor(Color.RED);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
row.addView(tv);

TextView tv2 = new TextView(this);
tv2.setHeight(16);
tv2.setTextSize(16);
tv2.setTextColor(Color.RED);
tv2.setText("Title, row "+rownb);
tv2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
row.addView(tv2);

table_layout.addView(row);
table_layout.requestLayout();
table_layout.invalidate();
table_layout.postInvalidate();
Log.i ("LIMA","Add row. There are now "+table_layout.getChildCount()+" rows");

}

1 个答案:

答案 0 :(得分:0)

删除您在表行

中添加的视图中的LayoutParams