以像素为单位的字符串长度抖动

标签 string flutter dart

我有一个字符串( 'hello' )和一个字体大小(20),有什么方法可以给我字符串的长度(以像素为单位)?

final String foo = 'hello';
final double fontSize = 20.0:
final pix = pixelsOf(foo, fontSize); //something like this

最佳答案

这是示例代码:

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(home: Scaffold(body: Home())));
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var text = 'I\'m awesome!';
    var size = calcTextSize(text, TextStyle(fontSize: 20));

    return Center(
      child: Column(
        mainAxisSize: MainAxisSize.min,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          Text(text, style: TextStyle(fontSize: 20)),
          Container(width: size.width, height: 4, color: Colors.blue),
          Text(size.width.toString()), // this blue line has exactly same width as text above
        ],
      ),
    );
  }

  Size calcTextSize(String text, TextStyle style) {
    final TextPainter textPainter = TextPainter(
      text: TextSpan(text: text, style: style),
      textDirection: TextDirection.ltr,
      textScaleFactor: WidgetsBinding.instance.window.textScaleFactor,
    )..layout();
    return textPainter.size;
  }
}
enter image description here

关于以像素为单位的字符串长度抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56595325/

相关文章:

dart - 如何从 http 响应迭代 cookie 值?

android - Flutter:FlutterFirebaseInstanceIDService.java 使用或覆盖已弃用的 API

flutter - 如何使用 Flutter 在恢复状态下重建 StreamBuilder

dart - 创建 "Sample web application using the polymer library"时 Dart 编辑器中的警告

作为 "pure"面向对象语言的 Ruby --- 与 Ruby puts 不一致?

Swift Escape Character '\' 被添加到字符串中

java - 取一个字符串并将其转换为二维数组 Java

C++ 自定义字符串修剪实现 valgrind 警告

flutter - 我在dart中的if语句有问题

flutter - 如何在 Flutter 中更改 CupertinoSlidingSegmentedControl 的宽度