2

我正在尝试使所有文本(长度不同)在一个固定宽度的框中适合,并且我希望它们在应用 FittedBox 时看起来与最长单词的大小相同。所以我正在做的就是用空白填充单词的其余部分,以使长度与最长的单词相匹配。但这并不完全有效,如下图所示:

在此处输入图像描述

这是代码:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      routes: {
        '/': (context) => HomePage(),
      },
    );
  }
}

class HomePage extends StatelessWidget {
  final String padding = " " * 5;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Home'),
      ),
      body: Center(
        child: Container(
          color: Colors.red,
          height: 100.0,
          width: 100.0,
          padding: const EdgeInsets.all(8.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Center(
                child: FittedBox(
                  fit: BoxFit.scaleDown,
                  child: Text(
                    "${padding}Demo$padding",
                    textAlign: TextAlign.center,
                    style: TextStyle(color: Colors.black),
                  ),
                ),
              ),
              Icon(Icons.mic, size: 24.0),
            ],
          ),
        ),
      ),
    );
  }
}

你知道这里有什么问题吗?

4

1 回答 1

1

这真的很奇怪,但是如果您删除对齐或将其设置为启动,它似乎可以正常工作。(是什么导致了这个错误 - 我仍然不知道)

child: Text('${padding}Demo$padding',
  style: TextStyle(color: Colors.black, decoration: TextDecoration.underline),)

我添加了装饰以查看这些空间

于 2018-11-06T13:09:52.110 回答