依赖

 auto_size_text: ^3.0.0 //自动调整文本大小

例子

class AutoSizeRichTextExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        width: double.infinity,
        child: AutoSizeText.rich(
          TextSpan(
            children: _getRichTextSpans(),
          ),
          style: TextStyle(fontSize: 50.0), // 初始字体大小
          maxLines: 1,
          minFontSize: 10.0,
          overflow: TextOverflow.ellipsis,
        ),
      ),
    );
  }

  List<TextSpan> _getRichTextSpans() {
    final List<Map<String, dynamic>> dataList = [
      {'text': 'This ', 'color': Colors.red},
      {'text': 'is ', 'color': Colors.blue},
      {'text': 'a ', 'color': Colors.green},
      {'text': 'slightly ', 'color': Colors.orange},
      {'text': 'longer ', 'color': Colors.purple},
      {'text': 'item', 'color': Colors.teal}
    ];

    return dataList.map((item) {
      return TextSpan(
        text: item['text'],
        style: TextStyle(color: item['color']),
      );
    }).toList();
  }
}

 

posted on 2024-08-27 09:49  鲤斌  阅读(53)  评论(0编辑  收藏  举报