You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter能否绕过Android的Emoji尺寸限制?

Android平台Emoji缩放异常的Flutter绕过方案

Android平台的Emoji缩放存在异常问题,该问题在Android 11及更早版本就已出现,且Android 12中仍未修复。

目前在Flutter中使用FittedBox将Emoji缩放到父容器尺寸的方案,在多数平台运行正常,但Android平台下当尺寸超过约90px时,渲染结果会出现异常。InteractiveViewer无法解决该问题,用它包裹Column组件反而能更直观地展示问题。现寻求绕过该限制的方法,比如通过转为图片再缩放等方式。

效果对比

DartPad正常效果

DartPad示例

Android真机/模拟器异常效果

在Android真机或模拟器中,90px及以上尺寸的Emoji显示异常:本该是90x90的Emoji会显示为一条黄色大曲线(模拟器中无此曲线,但Emoji仍缺失)。
Android截图

测试代码

import 'package:flutter/material.dart';

const Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(
        scaffoldBackgroundColor: darkBlue,
      ),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    const String emoji = "😃";
    return InteractiveViewer(
      child: Column(children: [
        Container(
            color: Colors.green,
            width: 70,
            height: 70,
            child: const FittedBox(fit: BoxFit.contain, child: Text(emoji))),
        Container(
            color: Colors.green,
            width: 80,
            height: 80,
            child: const FittedBox(fit: BoxFit.contain, child: Text(emoji))),
        Container(
            color: Colors.red,
            width: 90,
            height: 90,
            child: const FittedBox(fit: BoxFit.contain, child: Text(emoji))),
        Container(
            color: Colors.red,
            width: 100,
            height: 100,
            child: const FittedBox(fit: BoxFit.contain, child: Text(emoji))),
        Container(
            color: Colors.red,
            width: 180,
            height: 180,
            child: const FittedBox(fit: BoxFit.contain, child: Text(emoji))),
      ]),
    );
  }
}

补充说明

评论区@Marcel Dz建议尝试Flutter 2.10.5版本,相关验证工作正在进行中:
图片描述

内容的提问来源于stack exchange,提问作者SpiRail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:01:07