내 첫 번째 flutter 앱에서 작업 중입니다. 기본 앱 화면에는이 문제가 없으며 모든 텍스트가 정상적으로 표시됩니다.
그러나 내가 개발중인이 새 화면에서는 모든 텍스트 위젯 아래에 이상한 노란색 선 / 이중 선이 있습니다.
왜 이런 일이 발생하는지에 대한 아이디어가 있습니까?
답변
문제는 없는지 Scaffold
여부입니다.
Scaffold
을위한 도우미 Material
응용 프로그램 ( AppBar
, Drawer
물건, 그 종류). 하지만 Material
.
당신이 놓친 것은 Theme
부모로서의 인스턴스입니다 .
아는 것이 왜 중요합니까? 모달을 개발할 때 ( showDialog
예 : 사용 ) 동일한 문제에 직면하게 되기 때문 입니다. 그러나 Scaffold는 불투명 한 전체 화면 위젯입니다! 그리고 당신은 분명히 당신의 모달에서 그것을 원하지 않습니다.
Theme 인스턴스를 도입하는 방법에는 여러 가지가 있습니다. 머티리얼 앱에서 이것은 일반적으로 Material
위젯 을 인스턴스화함으로써 달성됩니다 . 그리고 그거 알아? Scaffold
당신을 위해 하나를 만듭니다. 하지만 Dialog
너무!
답변
Material
위젯을 루트 요소로 추가하십시오 .
@override
Widget build(BuildContext context) {
return Material(
type: MaterialType.transparency,
child: new Container(
답변
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
)
답변
텍스트 스타일에는 없음으로 설정할 수있는 장식 인수가 있습니다.
Text("My Text",
style: TextStyle(
decoration: TextDecoration.none,
)
);
또한 다른 사람들이 언급했듯이 Text 위젯이 Scaffold 또는 Material 위젯의 트리에 있으면 장식 텍스트 스타일이 필요하지 않습니다.
답변
또한 장식을 사용할 수 있습니다 : TextDecoration.none을 사용하여 밑줄을 제거합니다.
답변
이 답변에 내가 만나는 또 다른 방법을 추가하십시오.
DefaultTextStyle 위젯을 루트 위젯으로 감 쌉니다 . 여기서 각 텍스트 위젯을 변경할 필요는 없습니다.
DefaultTextStyle(
style: TextStyle(decoration: TextDecoration.none),
child : Your_RootWidget
)
누군가에게 도움이되기를 바랍니다.
답변
main.dart 파일에 Material과 Scaffold 위젯을 추가해야합니다.
MaterialApp(
home: Scaffold(
body: Text('Hello world'),
),
);