【问题标题】:Android: Tablerow multiline textview clipping verticallyAndroid:Tablerow 多行文本视图垂直裁剪
【发布时间】:2012-01-30 14:32:23
【问题描述】:

我正在向表中动态添加具有两列的行。其中一列包含将跨多行分布的文本。我已经为 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

【问题讨论】:

  • 将其用于 paramsText :TableRow.LayoutParams paramsText = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);

标签: android clipping tablerow


【解决方案1】:

我找到了问题的根源。第一列值 textsize 制作了多行文本剪辑。如果我减小文本大小,问题就会消失。 我无法解释为什么。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 2012-02-07
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多