0

我的一项活动中有两个表格行。第一行将始终包含 2 个文本视图,第二行可能包含一个或两个文本视图(取决于用户输入)。每当我在第二行有一个 textview 时,我都试图将它跨越到两列。我正在尝试这个

TableRow.LayoutParams param = (LayoutParams)editText.getLayoutParams();
param.span = 2;
txtView.setLayoutParams(param);

但它不起作用。发生的情况是,第一行中的第二个 txtview 被推出屏幕。那么这里的任何人都可以告诉我在哪里犯错了吗?

4

2 回答 2

5

我做了这个例子,希望对你有帮助。

 TableLayout table = (TableLayout)findViewById(R.id.table_id_in_xml);
    TableRow row = new TableRow(this);
    TableRow row2 = new TableRow(this);
    TextView col1, col2, col3;        

    row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
    row2.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

    col1 = new TextView(this);
    col2 = new TextView(this);
    col3 = new TextView(this);

    col1.setText("col1");
    col2.setText("col2");
    col3.setText("col3");

    row.addView(col1);
    row.addView(col2);
    row.addView(col3);

    table.addView(row, new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    //HERE IS WHAT YOU NEED
    TableRow.LayoutParams params = (TableRow.LayoutParams) row2.getLayoutParams();
    params.span = 3; //amount of columns you will span

    col1 = new TextView(this);

    col1.setText("span on col1 makes it bigger than the others");
    col1.setLayoutParams(params);
    row2.addView(col1);

    table.addView(row2, new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
于 2012-11-27T17:23:30.843 回答
0

解释标记为正确的答案 - 看起来您需要在将视图添加到其父级后设置布局参数。例如,将 textview 添加到一行,然后设置布局参数

于 2022-02-01T01:15:45.720 回答