我将带有单元格的表格行动态添加到表格中。 行和单元格已添加,但单元格中的文本不会换行。 部分代码如下:
布局如下:
<TableLayout
android:id="@+id/TableTheOpenQuestion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="1dp"
android:layout_marginRight="12dp"
android:backgroundTint="@color/backgroundColor"
android:visibility="gone"
android:stretchColumns="*">
</TableLayout>
而我使用上述布局对应的Java文件如下:
tableLayout = findViewById(R.id.TableTheOpenQuestion);
TableRow tr = new TableRow(dContext);
TableRow.LayoutParams params = new TableRow.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT, 1);
params.setMargins(12, 0, 12, 0);
tr.setLayoutParams(params);
TableRow.LayoutParams cellParams = new TableRow.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT);
TextView tv = new TextView(dContext);
tv.setLayoutParams(cellParams);
tv.setPadding(5, 10, 10, 10);
tv.setText("A very long text.A very long text.A very long text.A very long text.A very long text.A very long text.A very long text.A very long text.");
tr.addView(tv);
//
// Add the row to the table
//
tableLayout.addView(tr);
我一直在搜索很多类似的问题,但似乎没有什么对我有用。非常感谢所有帮助!
对于
TextView
,TableRow
参数应该如下,而不是你写的
TableRow.LayoutParams params = new TableRow.LayoutParams(
0, // Width 0 to allow wrapping
TableRow.LayoutParams.WRAP_CONTENT, // Wrap content height
1.0f // Equal weight for each cell
);
然后您可以将
params
分配给您的 TextView
TextView textView = new TextView(context);
textView.setText(text);
textView.setLayoutParams(params);