如何使用列中文本占用的空间来控制SVG宽度.

我想要的是

enter image description here enter image description here

What I am getting- enter image description here

Column(
      mainAxisSize: MainAxisSize.min,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Text(text),
        SvgPicture.asset(
          Assets.weirdLine,
          fit: BoxFit.fill,
        ),
      ],
    )

也try 过使用代码-

Column(
      mainAxisSize: MainAxisSize.min,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Text(text),
        Container(
          height: 4,
          child: Expanded(
//            fit: FlexFit.tight,
            child: SvgPicture.asset(
              Assets.weirdLine,
              fit: BoxFit.fill,
            ),
          ),
        )
      ],
    )

推荐答案

您可以获取文本宽度并将其设置为SVG宽度. 使用这个代码,

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;
}

final double textWidth = calcTextSize(text, TextStyle(fontSize: fontSize)).width;

Flutter相关问答推荐

未处理异常:字符串类型不是值类型子类型的子类型'

try 在Flutter应用程序中传递变量到FirebaseFirestore Where子句

如何使一个悬浮的appbar在flutter?

Build.gradle专线:2个Flutter Flutter

Flutter 蜂窝单元测试

在框中保存对象列表时,类型推断无法正常工作

Flutter 翼future 建造者不断开火和重建.它在每次重建时都会生成一个新的随机数--我如何防止这种情况?

BoxConstraints强制使用无限宽度(列中的Listview)

flutter Listview构建器溢出

有没有办法在 google_map 上移动标记(向左或向右移动一些像素)?

如果有空间则居中CustomScrollView

Flutter:如何在现有布局之上显示圆角布局?

Flutter底部面板局部显示

如何使Flutter 屏幕无法关闭?

将状态维护到 asyncNotifier

如何停止折线图的抖动

使用 Chaquopy 插件后 Gradle Sync 无法正常工作

如何将变量翻译成其他语言

Flutter 上Denim blue colored颜色 的 colored颜色 矩阵代码是什么?

Flutter - 检测手指何时进入容器