Android:Tablerow多行textview垂直剪裁

时间:2011-12-30 14:09:37

标签: android clipping tablerow

我正在动态地将包含两列的行添加到表中。其中一列包含将分布在多行中的文本。我已经在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);

如何修复此垂直剪辑? 以下问题的屏幕截图:

Here is the link showing the problem

2 个答案:

答案 0 :(得分:1)

我找到了问题的根源。 textize的第一列值构成了多行文本剪辑。如果我减少文本大小,问题就会消失。 我不能解释为什么。

答案 1 :(得分:0)

我将在这里提出另一个答案:Android以非直观的方式测量表格行高。如果你有2个TextView(一个用于TableRow的每一列),你需要确保你为第一个TextView设置的顶部和底部填充设置与第二个TextView相同,否则你会得到像内容这样的奇怪内容第二个TextView的剪辑和奇怪的定位。