限制文本小部件的字符数?

时间:2019-08-12 17:42:19

标签: flutter

我试图找出如何限制在颤动的文本小部件中显示省略号之前显示字符的数量。

2 个答案:

答案 0 :(得分:2)

这对我来说一点意义都没有,我的意思是,如果您想限制文本字符的数量,那么“省略号”根本没有任何意义,因此只需将文本限制为恒定长度即可。

final text = 'hello stack overflow';
Text(text.length > 3 ? '${text.substring(0, 3)}...' : text);

答案 1 :(得分:0)

这是一个不同的问题,但是我假设您不知道如何获取文本小部件的大小,这是如何获取该大小的方法:How to get Widget size

每当文本溢出时如何计算边界,就以小部件的大小并将其分配给widget_width并继续使用以下伪代码,如下所示:

double widget_width = computeWidgetWidthAsShownInLinkAbove(context, text_widget);

String    sample = "This text is probably to long to fit";

TextStyle textstyle  = new TextStyle(fontSize: i);

int answer = 0;

for ( int I = 0; I < sample.length ; I = I + 1 ) {
  TextPainter textPainter = TextPainter(textDirection: TextDirection.ltr);

  textPainter.text = new TextSpan(
          text: sample.substring(0, I ), style: textstyle);

  textPainter.layout();

  if ( textPainter.width > widget_width ) {
    answer=I-1;  
    break;
  }
}