我有一个用于获取消息的 API。这些消息可能包含表情符号。 当它确实包含表情符号时,文本小部件无法正确显示。 我只想在屏幕上显示它们。如果可能,请提供帮助。
谢谢:)
class Message{
String text;
Message(){
this.text = get_data_from_api()['text'];
}
}
message = Message();
return Container(
child: Text(message.text),
);
没有Displaying text with Emojis on Flutter 不会做。我可以这样做,但只有在字符串中有表情符号时才有效,即明确地在字符串中放置表情符号对我来说很好用。但是当我使用类似于上面的代码时。我明白了,这个
深入研究,我发现如果我在控制台上打印我的响应
“ðððð”
如果我打印一个表情符号是?
所以
我正在使用
Response.fromStream(await request.send())
来自 http/http.dart
这是问题吗?
答案 0 :(得分:0)
如果您在 API 的响应中明确存在表情符号图像,并且您想在文本中显示它,您应该尝试在 RichText 中添加 WidgetSpan 下面是如何做到这一点的示例:
RichText(
text: TextSpan(
children: [
TextSpan(
text: "Click ",
),
WidgetSpan(
child: Icon(Icons.add, size: 14),
),
TextSpan(
text: " to add",
),
],
),
),
在上面的例子中,他们使用了材质图标(Icon(Icons.add))。如果您想从从 API 获取的图像中替换它,您可以使用 ImageIcon 而不是 Icon 小部件。点击此链接了解如何使用 ImageIcon :https://www.woolha.com/tutorials/flutter-using-imageicon-widget-examples
答案 1 :(得分:0)
我确实想通了
我从 API 获取数据。所以在解码时由于某种原因它没有解码 utf-8 所以我需要做的是添加
utf8.decode(response.bodyBytes);
代替response.body
并解决了