我正在动态地将包含两列的行添加到表中。其中一列包含将分布在多行中的文本。我已经在textview的布局参数上添加了权重,因此它不再在屏幕外隐藏,但它似乎被限制在表格中显示的两行半,无论多行文本有多长。该表只是在xml中定义,其他所有内容都是以编程方式完成的。
TableRow.LayoutParams rowParams = new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT);
TableRow.LayoutParams paramsStar = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
paramsStar.setMargins(0,0,40,0);
TableRow.LayoutParams paramsText = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.FILL_PARENT, (float)1.0);
TableRow tr = new TableRow(this);
tr.setLayoutParams(rowParams);
TextView viewStar = new TextView(this);
viewStar.setTextSize((float) 30.0);
viewStar.setText("*");
viewStar.setLayoutParams(paramsStar);
viewStar.setTypeface(Typeface.DEFAULT_BOLD, 2);
TextView viewText = new TextView(this);
viewText.setText("Long multiline text piece"); //<--- Here the long text goes
viewText.setLayoutParams(paramsText);
tr.addView(viewStar);
tr.addView(viewText);
table.addView(tr, rowParams);
如何修复此垂直剪辑? 以下问题的屏幕截图:
答案 0 :(得分:1)
我找到了问题的根源。 textize的第一列值构成了多行文本剪辑。如果我减少文本大小,问题就会消失。 我不能解释为什么。
答案 1 :(得分:0)
我将在这里提出另一个答案:Android以非直观的方式测量表格行高。如果你有2个TextView(一个用于TableRow的每一列),你需要确保你为第一个TextView设置的顶部和底部填充设置与第二个TextView相同,否则你会得到像内容这样的奇怪内容第二个TextView的剪辑和奇怪的定位。