在TableLayout中不工作时查看wrap_content

问题描述 投票:0回答:1

我将带有单元格的表格行动态添加到表格中。 行和单元格已添加,但单元格中的文本不会换行。 部分代码如下:

布局如下:

<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);

我一直在搜索很多类似的问题,但似乎没有什么对我有用。非常感谢所有帮助!

android android-layout
1个回答
0
投票

对于

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);
© www.soinside.com 2019 - 2024. All rights reserved.