#码力全开·技术π对#Flutter Web在CanvasKit渲染模式下出现文字模糊或性能下降,有哪些优化方案?‌

Flutter Web在CanvasKit渲染模式下出现文字模糊或性能下降,有哪些优化方案?‌

优化方案
黑亮
2025-05-13 15:43:44
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
wx6771857dc652f
wx6771857dc652f

文字模糊问题优化

1. 设置正确的设备像素比(DPR)

dart

void main() {
  // 在WidgetsFlutterBinding初始化前设置DPR
  if (kIsWeb) {
    final double devicePixelRatio = window.devicePixelRatio;
    window.onMetricsChanged = () {
      // 监听窗口变化,动态调整DPR
      final double newRatio = window.devicePixelRatio;
      if (devicePixelRatio != newRatio) {
        window.onMetricsChanged = null;
        main(); // 重启应用以应用新DPR
      }
    };
  }
  runApp(const MyApp());
}

2. 启用抗锯齿和亚像素渲染

dart

Text(
  '示例文本',
  style: TextStyle(
    fontSize: 16.0,
    fontFamily: 'Roboto',
    // 启用抗锯齿和亚像素渲染
    fontSmoothing: FontSmoothing.antialiasedWithSubpixelRendering,
  ),
)

3. 使用 CanvasKit 的字体缓存策略

dart

// 在pubspec.yaml中明确指定字体
fonts:
  - family: Roboto
    fonts:
      - asset: fonts/Roboto-Regular.ttf
      - asset: fonts/Roboto-Bold.ttf
        weight: 700
分享
微博
QQ
微信https://www.51cto.com/aigc/
回复
2025-05-14 11:11:30
发布
相关问题
提问