如何包装textview自动调整大小的内容

时间:2014-06-29 17:29:03

标签: android android-layout autoresize

我需要为动态创建的textview设置参数,textview的文本来自数据库。由于某些文本可能较大,因此超出了移动窗口并继续以单行显示文本

    TableLayout tbl=(TableLayout) findViewById(R.id.tbla);
    TableRow row= new TableRow(this);
            TableRow.LayoutParams lp = new    TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
            row.setLayoutParams(lp);
TextView tv1 = new TextView(this);
            tv1.setSingleLine(false);
            tv1.setEllipsize(null);
            tv1.setTextSize(getResources().getDimension(R.dimen.textsize));
            tv1.setHorizontallyScrolling(false);
            tv1.setText(log);
            row.addView(tv1);
            tbl.addView(row,i);

我已经阅读了一些文章,并为它做了一些可能的属性.. plz帮助我让它自动调整大小..

2 个答案:

答案 0 :(得分:1)

在将TextView添加到TableRow之前,只需在代码中添加此行:

tv1.setLayoutParams(new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1f));

这将使您的TextView始终显示其所有高度。

答案 1 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

TableLayout tbl=(TableLayout) findViewById(R.id.tbla);
TableRow row= new TableRow(this);
TableLayout.LayoutParams lp = new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,TableLayout.LayoutParams.WRAP_CONTENT);
row.setLayoutParams(lp);
TextView tv1 = new TextView(this);
tv1.setTextSize(getResources().getDimension(R.dimen.textsize));
tv1.setText(log);
row.addView(tv1,new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
tbl.addView(row,i);