Желтые линии под текстовыми виджетами в Flutter?
Работа над моим первым флаттера. На главном экране приложения нет этой проблемы, все тексты отображаются так, как должны.
Однако на этом новом экране, который я разрабатываю, весь текстовый виджет имеет немного странную желтую линию/двойную линию внизу.
Любые идеи о том, почему это происходит?
Ответы
Ответ 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'),
),
);