Дарт: Как усечь строку и добавить многоточие после номера персонажа - PullRequest
0 голосов
/ 18 ноября 2018

Я хотел бы добавить многоточие к строке после определенной длины символа, и, если длина строки не соответствует заданной длине символа, многоточие (...) НЕ ДОЛЖНО быть добавлено.

Как мне добиться этого на языке дартс?

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Вы можете сделать что-то вроде этого:

String truncateWithEllipsis(int cutoff, String myString) {
  return (myString.length <= cutoff)
    ? myString
    : '${myString.substring(0, cutoff)}...';
}
0 голосов
/ 18 ноября 2018

оберните ваш текстовый виджет контейнером, как показано ниже

Пожалуйста: прочитайте закомментированные строки в коде ниже

class TruncatedText extends StatelessWidget {
@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(),

    body: Container(
      //Here you can control the width of your container ..
      //when text exceeds it will be trancated via elipses...
      width: 130.0,
      child: Text('I have a trancated text',
        style: TextStyle(fontSize: 20),

        softWrap: false,
        overflow: TextOverflow.ellipsis,
      ),
    ),
  );
}

}

Edit:

Вы можете использовать этот чистый код дротика, поскольку оригинальное решение работает для Flutter

void main() {
  String to_be_truncated = "Dart is excellent but flutter is awesome";
  int truncateAt = to_be_truncated.length-1;//if you use to_be_truncated.lengh no truncation will happen
  String elepsis = "..."; //define your variable truncation elipsis here 
  String truncated ="";

  if(to_be_truncated.length > truncateAt){
     truncated = to_be_truncated.substring(0,truncateAt-elepsis.length)+elepsis; 
  }else{
    truncated = to_be_truncated;
  } 
   print(truncated);
}
...