I'm trying to create a line in which center text has a maximum size, and if the text content is too large, it fits in size.

I insert the TextOverflow.ellipsis property to shorten the text and inserting the triple points ... but it is not working.

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:

HKiLt.png

expected:

rGk9W.png

解决方案

You should wrap your Container in a Flexible to let your Row know that it's ok for the Container to be narrower than its intrinsic width. Expanded will also work.

o2nyO.png

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,

),

),

),

),

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐