Flutter使用flutter_emoji库时emoji显示效果不符预期该如何解决
问题原因
flutter_emoji包的Emoji是封装类,你直接将类实例插入字符串拼接时,Dart会默认调用实例的toString()方法,输出的是类实例标识,不会直接返回emoji字符,因此显示异常。
修复方案
方案1:调用Emoji实例的code属性获取表情字符
修正后的代码如下:
import 'package:flutter_emoji/flutter_emoji.dart'; var heart = Emoji('heart', '❤️'); // 从Emoji实例中取code属性获取真实表情字符 Text(" Play me ${heart.code}");
方案2:使用包自带的解析器简化调用
你也可以直接用包提供的EmojiParser处理字符串,不需要手动实例化Emoji对象:
import 'package:flutter_emoji/flutter_emoji.dart'; var parser = EmojiParser(); // 方式1:通过表情名获取 var heart = parser.get('heart'); Text(" Play me ${heart.code}"); // 方式2:直接解析带表情占位符的字符串 Text(parser.emojify("Play me :heart:"));
方案3:无需第三方包的原生实现
Flutter的Text组件本身已支持直接渲染emoji字符,如果你的需求只是展示固定emoji,完全可以不用引入第三方依赖,直接写表情即可:
Text(" Play me ❤️");
异常显示效果参考

内容的提问来源于stack exchange,提问作者Hisham Aldorai
相关产品推荐
相关产品推荐

