Желтые линии под текстовыми виджетами в Flutter?

Работа над моим первым флаттера. На главном экране приложения нет этой проблемы, все тексты отображаются так, как должны.

Однако на этом новом экране, который я разрабатываю, весь текстовый виджет имеет немного странную желтую линию/двойную линию внизу.

Любые идеи о том, почему это происходит?

Yellow Lines

Ответ 1

Проблема не в том, что у вас есть Scaffold или нет. Scaffold - помощник для приложений Material (AppBar, Drawer и тому подобное). Но вы не обязаны использовать Material.

То, что вы упускаете, является экземпляром Theme как родитель.

Почему это важно знать? Потому что, когда вы разработаете showDialog например, с помощью showDialog), вы столкнетесь с той же проблемой. НО Scaffold - это непрозрачный полноэкранный виджет! И вы, очевидно, не хотите этого в своем Модале.

Существует много способов представить экземпляр Theme. В Material App это обычно достигается созданием виджета Material. И угадай что? Scaffold создает один для вас. Но Dialog тоже!

Ответ 2

Добавить виджет Material качестве корневого элемента.

@override
  Widget build(BuildContext context) {
    return Material(
        type: MaterialType.transparency,
        child: new Container(

Ответ 3

Вы можете использовать Scaffold (как правило, лучше) или любой другой компонент, который обеспечивает материальную тему, например, простой виджет Material.

Вот пример, используйте любой из них:

var text = Scaffold(body: Text("Hi"),);
var text2 = Material(child: Text("Hi"),);

В качестве обходного пути вы можете использовать:

Text(
  'Your text',
  style: TextStyle(decoration: TextDecoration.none), // removes yellow line
)

Ответ 4

Также вы можете использовать украшение: TextDecoration.none, чтобы удалить подчеркивание

Ответ 5

Стиль текста имеет аргумент декорации, который можно установить равным none

Text("My Text",
  style: TextStyle(
    decoration: TextDecoration.none,
  )
);

Ответ 6

Вы должны добавить виджеты Material и Scaffold в файл main.dart

 MaterialApp(
  home: Scaffold(
    body: Text('Hello world'),
  ),
);