调整前:
调整后:
解决方案:
strutStyle: StrutStyle(
forceStrutHeight: true,
leading: 0.5,
),
解决原理:
中文和英文字体默认的leading不一样。
StrutStyle的leading属性是指字体的倍数,比如:0.5就是0.5*字体的高度,而且这个高度要分成两半,上下各分一半。
参考:
https://juejin.cn/post/7034416015442345991
全部代码:
Widget _buildChosenTags() { List<String> tags = ['全是汉字', 'all english', '汉字 english','全是汉字', 'all english', '汉字 english']; return Container( padding:EdgeInsets.all(8), child: Wrap( runSpacing: 15, spacing: 10, children: tags.map((String title) { return Container( padding: EdgeInsets.symmetric(vertical: 0, horizontal: 0), decoration: BoxDecoration( border: Border.all(color: Colors.blueAccent, width: 0.5), borderRadius: BorderRadius.all(Radius.circular(2)), ), child: Text( title, //解决全英文的标签和中文标签高度不一致的问题 strutStyle: StrutStyle( //forceStrutHeight: true, //leading: 0.5, ), style: TextStyle(fontSize: 16, color: Colors.grey), ), ); }).toList(), ), );