FittedBox и текстовые пробелы - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь сделать так, чтобы весь текст (длина варьировался) в поле фиксированной ширины соответствовал размеру, и я хочу, чтобы при применении FittedBox они выглядели с размером самого длинного слова. Итак, что я делаю для достижения этой цели - заполняю оставшееся слово пустым пространством, чтобы соответствовать длине самого длинного слова. Но это не совсем работает, как вы видите на следующем рисунке:

enter image description here

Вот код:

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),
            ],
          ),
        ),
      ),
    );
  }
}

Вы хоть представляете, в чем здесь проблема?

1 Ответ

0 голосов
/ 06 ноября 2018

Это действительно странно, но, кажется, работает правильно, если вы удалите выравнивание или установите его для запуска. (Что вызвало эту ошибку - я до сих пор не знаю)

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

Я добавил оформление, чтобы увидеть эти пространства

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...