Работаю над своим первым приложением для флаттера. На главном экране приложения этой проблемы нет, все тексты отображаются так, как должны.
Однако на этом новом экране, который я разрабатываю, у всех текстовых виджетов есть какая-то странная желтая линия / двойная линия внизу.
Есть идеи, почему это происходит?
Scaffold
, вы можете просто окружитьText
сMaterial
виджетомОтветы:
Проблема не в том, есть
Scaffold
или нет.Scaffold
является помощником дляMaterial
приложений (AppBar
,Drawer
и тому подобного). Но вас не заставляют использоватьMaterial
.Вам не хватает экземпляра
Theme
родительского элемента .Почему это важно знать? Потому что, когда вы будете разрабатывать модальное окно (
showDialog
например, используя ), вы столкнетесь с той же проблемой. НО Scaffold - это непрозрачный полноэкранный виджет! И вы, очевидно, не хотите этого в вашем модальном окне.Есть много способов представить экземпляр темы. В приложении Material это обычно достигается путем создания экземпляра
Material
виджета. И угадайте, что?Scaffold
создает для вас. НоDialog
тоже!источник
Material
(или любой темы) в качестве дочернего элемента Героя (ОБЕИХ сторон) исправляет его при переходе. См github.com/flutter/flutter/issues/30647Добавить
Material
виджет как корневой элемент.источник
text
илиwidget
сMaterial
виджетом. Добавление Материала в качестве корневого элемента не помогло в моем случаеtype: MaterialType.transparency
и без них.Вы можете использовать
Scaffold
(как правило, лучше) или любой другой компонент, который предоставляет материальную тему, например, простойMaterial
виджет.Вот пример, используйте любой из них:
В качестве обходного пути вы можете использовать:
источник
У стиля текста есть аргумент оформления, которому можно присвоить значение none
Кроме того, как уже упоминалось, если ваш виджет Text находится в дереве виджета Scaffold или Material, вам не понадобится стиль текста оформления.
источник
Также вы можете использовать украшение: TextDecoration.none, чтобы удалить подчеркивание
источник
Просто добавляю еще один способ, с которым я сталкиваюсь, к этим ответам.
Оберните корневой виджет вокруг виджета DefaultTextStyle . Здесь нет необходимости изменять каждый текстовый виджет.
Надеюсь, это кому-то поможет.
источник
Вы должны добавить виджеты Material и Scaffold в файл main.dart.
источник
Для этого есть другое решение, особенно если вы используете несколько страниц, заключенных в файл main.dart. Вы можете сделать что-то вроде этого:
Это удалит желтые линии под текстом, который присутствует на всех страницах, на которые есть ссылки / которые используются в оболочке.
источник
Вам просто нужно добавить корневой виджет Material.
источник
Доступны 2 способа:
использовать scaffuld в родительском элементе экрана
использовать материал для родительского элемента виджета
источник