小智 13
您可以replaceRange为此使用方法。
var text = 'Hello World!';
var r = text.replaceRange(7, text.length, '...');
print(r); // -> Hello W...
Run Code Online (Sandbox Code Playgroud)
用如下所示的容器包装您的 Text 小部件
请:阅读下面代码中的注释行
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,
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
}
编辑:
您可以使用此纯 dart 代码,因为原始解决方案适用于 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);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以执行以下操作:
String truncateWithEllipsis(int cutoff, String myString) {
return (myString.length <= cutoff)
? myString
: '${myString.substring(0, cutoff)}...';
}
Run Code Online (Sandbox Code Playgroud)
您可以在字符串上使用扩展:
extension StringExtension on String {
String truncateTo(int maxLength) =>
(this.length <= maxLength) ? this : '${this.substring(0, maxLength)}...';
}
Run Code Online (Sandbox Code Playgroud)
然后
'My Very Long Text'.truncateTo(7); // My Very...
Run Code Online (Sandbox Code Playgroud)
创建extensions.dart 文件。
String truncateString(String data, int length) {
return (data.length >= length) ? '${data.substring(0, length)}...' : data;
}
Run Code Online (Sandbox Code Playgroud)
使用它作为自定义扩展。
用法
import 'package:project/util/extensions.dart';
truncateString('Sam Trio', 5)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1556 次 |
| 最近记录: |