Flutter Text только разрывает строки на пробелах - PullRequest
0 голосов
/ 07 августа 2020

Моя проблема в том, что флаттер прерывает текст без пробелов:

enter image description here

How can I tell flutter not to beak text at the "/" but only when it encounters a whitespace?

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        body: Center(
          child: Container(
            width: 220.0,
            child: Text(
              'This should not break here x/y/z',
              style: TextStyle(fontSize: 30.0),
            ),
          ),
        ),
      ),
    );
  }
}

Я искал такие пакеты, как auto_size_text, но не нашел ничего, что могло бы решить эту проблему проблема.

Изменить:

Работа с '\ n' не является вариантом, так как длина текста варьируется, но он всегда включает три символа x / y / z, разделенные косой чертой в конец.

Я бы предпочел не рассчитывать размер отображаемого текста заранее, чтобы определить, следует ли включать новую строку перед x / y / z. Это может показаться немного тяжелым, поскольку это названия карточек, содержащиеся в ListView.

В Интернете нет проблем, там текст разбивается только на пробелы:

<!DOCTYPE html>
<html>

<body>
    <div style="background-color: grey; height: 200px; width: 400px;">
        <p style="font-size: 24.0pt;">
            This should not break here x/y/z
        </p>
    </div>
</body>

</html>

1 Ответ

0 голосов
/ 07 августа 2020

Обычно я использую TextAlign.justify, чтобы уместить текст, и, по моему мнению, вы можете попробовать:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        body: Center(
          child: Container(
            width: 220.0,
            child: Text(
              'This should not break here x/y/z',
              textAlign: TextAlign.justify,
              style: TextStyle(fontSize: 30.0),
            ),
          ),
        ),
      ),
    );
  }
} 

Также TextAlign.center неплохо.

...