Tôi đã gặp một số vấn đề với rowspan, trong trường hợp TableRow, Textview, v.v., được tạo bằng mã. Ngay cả khi câu trả lời của Onimush có vẻ tốt, nó không hoạt động với giao diện người dùng được tạo.
Đây là một đoạn mã mà .... không hoạt động:
TableRow the_ligne_unidade = new TableRow(this);
the_ligne_unidade.setBackgroundColor(the_grey);
TextView my_unidade = new TextView(this);
my_unidade.setText(tsap_unidade_nom);
my_unidade.setTextSize(20);
my_unidade.setTypeface(null, Typeface.BOLD);
my_unidade.setVisibility(View.VISIBLE);
TableRow.LayoutParams the_param;
the_param = (TableRow.LayoutParams)my_unidade.getLayoutParams();
the_param.span = 3;
my_unidade.setLayoutParams(the_param);
// Put the TextView in the TableRow
the_ligne_unidade.addView(my_unidade);
Mã có vẻ ổn, nhưng khi bạn đạt đến init của "the_params", nó sẽ trả về NULL.
Mặt khác, mã này hoạt động như một bùa mê:
TableRow the_ligne_unidade = new TableRow(this);
the_ligne_unidade.setBackgroundColor(the_grey);
TextView my_unidade = new TextView(this);
my_unidade.setText(tsap_unidade_nom);
my_unidade.setTextSize(20);
my_unidade.setTypeface(null, Typeface.BOLD);
my_unidade.setVisibility(View.VISIBLE);
// Put the TextView in the TableRow
the_ligne_unidade.addView(my_unidade);
// And now, we change the SPAN
TableRow.LayoutParams the_param;
the_param = (TableRow.LayoutParams)my_unidade.getLayoutParams();
the_param.span = 3;
my_unidade.setLayoutParams(the_param);
Sự khác biệt duy nhất là tôi đẩy Textview bên trong TableRow trước khi đặt nhịp. Và trong trường hợp này, nó hoạt động. Hy vọng điều này sẽ giúp được ai đó!