如何在颤振中显示表情符号

时间:2021-03-25 13:52:42

标签: flutter dart

我有一个用于获取消息的 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 不会做。我可以这样做,但只有在字符串中有表情符号时才有效,即明确地在字符串中放置表情符号对我来说很好用。但是当我使用类似于上面的代码时。我明白了,这个

enter image description here

深入研究,我发现如果我在控制台上打印我的响应

“ðððð”

如果我打印一个表情符号是?

所以

我正在使用

Response.fromStream(await request.send())

来自 http/http.dart

这是问题吗?

2 个答案:

答案 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

参考:Add image to RichText element

答案 1 :(得分:0)

我确实想通了

我从 API 获取数据。所以在解码时由于某种原因它没有解码 utf-8 所以我需要做的是添加

utf8.decode(response.bodyBytes);

代替response.body并解决了

参考:Emoji and accent encoding in dart/flutter