【问题标题】:How to show emoji in flutter如何在颤动中显示表情符号
【发布时间】:2021-06-22 08:05:15
【问题描述】:

我有一个从中获取消息的 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

那是问题吗?

【问题讨论】:

标签: flutter dart


【解决方案1】:

如果您的 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

【讨论】:

  • 当它收到消息时,它们没有相同的表情符号,也没有办法知道在特定消息中使用了哪个。
  • 您以什么形式从您的 API 接收表情符号?文字和表情是分开的还是合并的?
  • Sarvesh 谢谢,它没有使用 utf-8 解码。所以我必须手动完成,参考stackoverflow.com/questions/63381058/…。谢谢你的回复:)
【解决方案2】:

我想通了

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

utf8.decode(response.bodyBytes);

代替response.body 解决了

参考:Emoji and accent encoding in dart/flutter

【讨论】:

    猜你喜欢
    • 2020-02-09
    • 2023-02-26
    • 2016-01-08
    • 2021-09-23
    • 2014-05-17
    • 2016-04-05
    • 2022-06-24
    • 1970-01-01
    • 2011-03-21
    相关资源
    最近更新 更多