gpt4 book ai didi

dart - Flutter 只渲染硬编码的表情符号。动态构造的表情符号显示为纯文本

转载 作者:IT王子 更新时间:2023-10-29 07:21:03 24 4
gpt4 key购买 nike

我正在创建一个应用程序来显示从我们的 Firebase 数据库中提取的消息。其中一些消息中包含表情符号,并以这种格式存储:\udd25。这就是它们从 Instagram 中被抓取的方式。

Dart 要求这些实体的格式如下:\u{dd25}。我已经创建了一个动态添加这些花括号的函数,但问题是这些动态构造的实体没有按预期呈现为表情符号。

如果我像这样硬编码一个表情符号:


Text('\u{dd25}');

表情符号显示没有任何问题。

但是,当我恢复到重新格式化 Instagram 上任何潜在表情符号的解决方案时:


var emoji = '\\u' + uniqueNumber; // Concatenation with '{dd25}', for example
Text(emoji);

...这会呈现实体的字符串表示形式,而不是实际的表情符号本身。有什么方法可以“强制”Flutter 识别这个连接的字符串是一个表情符号,应该这样对待吗?

非常感谢。

我已经尝试使用子字符串函数从我必须在连接中使用的变量中删除“转义”反斜杠,以防这是问题所在,但这只显示没有反斜杠的相同字符串:u{dd25} .

最佳答案

\u2764 是“心”表情符号的 unicode。假设这是从数据库中获取的。然后您可以将其存储在一个变量中,并直接将该变量传递给 Text 小部件,它会呈现表情符号。

String emojiCode = '\u2764'; // assume, we fetched from DB
Text(emojiCode);

完整示例

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(home: MyApp()));

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
String emojiCode = '\u2764';
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.black,
),
body: Text(emojiCode));
}
}

输出

关于dart - Flutter 只渲染硬编码的表情符号。动态构造的表情符号显示为纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55634094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com