Pracuję nad moją pierwszą aplikacją Flutter. Główny ekran aplikacji nie ma tego problemu, wszystkie teksty są wyświetlane tak, jak powinny.
Jednak na tym nowym ekranie, który tworzę, cały widżet tekstowy ma pod spodem dziwną żółtą linię / podwójną linię.
Jakieś pomysły, dlaczego tak się dzieje?
Scaffold
, możesz po prostu otoczyćText
zMaterial
widgetOdpowiedzi:
Problem polega na tym, że nie masz
Scaffold
lub nie.Scaffold
Jest pomocnikiem dlaMaterial
aplikacji (AppBar
,Drawer
, tego typu rzeczy). Ale nie jesteś zmuszony do używaniaMaterial
.Brakuje Ci przykładu
Theme
jako rodzica.Dlaczego warto to wiedzieć? Ponieważ kiedy opracujesz Modal (używając
showDialog
na przykład), napotkasz ten sam problem. ALE Scaffold to nieprzezroczysty widżet pełnoekranowy! I oczywiście nie chcesz tego w swoim Modalu.Istnieje wiele sposobów wprowadzenia instancji Theme. W aplikacji Material jest to zwykle osiągane przez utworzenie wystąpienia
Material
Widżetu. I zgadnij co?Scaffold
tworzy go dla Ciebie. AleDialog
też!źródło
Material
(lub dowolnego motywu) jako dziecka Bohatera (OBIE strony) naprawia to podczas przejścia. Zobacz github.com/flutter/flutter/issues/30647Dodaj
Material
widżet jako element główny.źródło
text
lubwidget
zMaterial
widget pomógł mi. Dodanie materiału jako elementu głównego nie pomogło w moim przypadkutype: MaterialType.transparency
i bez.Możesz użyć
Scaffold
(ogólnie lepiej) lub dowolnego innego komponentu, który zapewnia materiałowy motyw, taki jak prostyMaterial
widget.Oto przykład, użyj dowolnego z nich:
Aby obejść ten problem, możesz użyć:
źródło
Styl tekstu ma argument dekoracji, który może być ustawiony na brak
Ponadto, jak wspominali inni, jeśli widget Tekst znajduje się w drzewie widgetu Rusztowanie lub Materiał, nie będzie potrzebny styl tekstu dekoracji.
źródło
Możesz także użyć dekoracji: TextDecoration.none, aby usunąć podkreślenie
źródło
Po prostu dodam inny sposób, w jaki napotykam te odpowiedzi.
Owiń główny widget wokół widgetu DefaultTextStyle . Zmiana każdego widżetu Tekst nie jest tutaj koniecznością.
Mam nadzieję, że to komuś pomoże.
źródło
Powinieneś dodać widżety Materiał i Rusztowanie w pliku main.dart
źródło
Jest na to inne rozwiązanie, zwłaszcza jeśli używasz wielu stron opakowanych w pliku main.dart. Możesz zrobić coś takiego:
Spowoduje to usunięcie żółtych linii pod tekstem, który jest obecny na wszystkich stronach, do których istnieją odwołania / są używane w opakowaniu.
źródło
Wystarczy dodać widżet główny Material.
źródło
Dostępne są 2 sposoby:
użyj scaffuld w rodzicu ekranu
użyj materiału dla rodzica widgetu
źródło