Flutter - 在溢出时换行文本,比如插入省略号或淡出。
Flutter - 在溢出时换行文本,比如插入省略号或淡出。
我尝试创建一条线,其中居中的文字具有最大尺寸,如果文本内容过大,则会自适应大小。
我插入TextOverflow.ellipsis
属性来缩短文本,并插入三点...
,但它不起作用。
main.dart
import 'package:flutter/material.dart'; void main() { runApp(new MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( home: new HomePage(), ); } } class HomePage extends StatelessWidget { @override Widget build(BuildContext context) => new Scaffold( appBar: new AppBar( backgroundColor: new Color(0xFF26C6DA), ), body: new ListView ( children: [ new Card( child: new Container( padding: new EdgeInsets.symmetric(horizontal: 16.0, vertical: 18.0), child: new Row( children: [ new Container( padding: new EdgeInsets.only(right: 24.0), child: new CircleAvatar( backgroundColor: new Color(0xFFF5F5F5), radius: 16.0, ) ), new Container( padding: new EdgeInsets.only(right: 13.0), child: new Text( 'Text lar...', overflow: TextOverflow.ellipsis, style: new TextStyle( fontSize: 13.0, fontFamily: 'Roboto', color: new Color(0xFF212121), fontWeight: FontWeight.bold, ), ), ), new Container( child: new Column( crossAxisAlignment: CrossAxisAlignment.end, children: [ new Row( children: [ new Text( 'Bill ', style: new TextStyle( fontSize: 12.0, fontFamily: 'Roboto', color: new Color(0xFF9E9E9E) ), ), new Text( '\$ -999.999.999,95', style: new TextStyle( fontSize: 14.0, fontFamily: 'Roboto', color: new Color(0xFF212121) ), ), ], ), new Row( children: [ new Text( 'Limit ', style: new TextStyle( fontSize: 12.0, fontFamily: 'Roboto', color: new Color(0xFF9E9E9E) ), ), new Text( 'R\$ 900.000.000,95', style: new TextStyle( fontSize: 14.0, fontFamily: 'Roboto', color: new Color(0xFF9E9E9E) ), ), ], ), ] ) ) ], ), ) ), ] ) ); }
result:
expected:
admin 更改状态以发布 2023年5月23日
使用省略号
Text( "This is a long text", overflow: TextOverflow.ellipsis, ),
使用渐变效果
Text( "This is a long text", overflow: TextOverflow.fade, maxLines: 1, softWrap: false, ),
使用裁剪效果
Text( "This is a long text", overflow: TextOverflow.clip, maxLines: 1, softWrap: false, ),
注意:
如果您正在使用Row
中的Text
,您可以将上述Text
放在Expanded
中,如下所示:
Expanded( child: AboveText(), )
您应该将Container
包装在一个Flexible
中,以让您的Row
知道Container
的宽度可以比其固有宽度小。 Expanded
也可以使用。
Flexible( child: new Container( padding: new EdgeInsets.only(right: 13.0), child: new Text( 'Text largeeeeeeeeeeeeeeeeeeeeeee', overflow: TextOverflow.ellipsis, style: new TextStyle( fontSize: 13.0, fontFamily: 'Roboto', color: new Color(0xFF212121), fontWeight: FontWeight.bold, ), ), ), ),