主应用程序屏幕没有这个问题,所有的文本显示他们应该。
然而,在新屏幕中,所有的文本部件下面都有一些奇怪的黄线/双线。
你知道为什么会这样吗?
主应用程序屏幕没有这个问题,所有的文本显示他们应该。
然而,在新屏幕中,所有的文本部件下面都有一些奇怪的黄线/双线。
你知道为什么会这样吗?
当前回答
你也可以使用装饰:TextDecoration。无删除下划线
其他回答
您只需要添加Material根小部件。
@override
Widget build(BuildContext context) {
return Material(
child: new Container(),
);
}
黄线来自_errorTextStyle。文档声明你应该定义一个DefaultTextStyle父类(或者使用Material,它可以为你做这件事):
MaterialApp使用这个TextStyle作为它的DefaultTextStyle来鼓励开发者有意识地使用他们的DefaultTextStyle。 在材质设计中,大多数文本小部件都包含在材质小部件中,这设置了一个特定的DefaultTextStyle。如果您看到使用这种文本样式的文本,请考虑将文本放在Material小部件(或另一个设置DefaultTextStyle的小部件)中。
开发没有素材的Flutter应用程序不是大多数人做的事情,但如果这是你的用例,你应该使用DefaultTextStyle。
与公认的答案相反,Theme没有设置DefaultTextStyle,因此它不能解决您的问题。Scaffold确实解决了这个问题,因为它包含了Material,而Material又定义了DefaultTextStyle,但是对于对话框、英雄等来说,Scaffold有点超出了你的需要。
要永久地解决整个应用程序的这个问题,你可以在MaterialApp构建器中设置DefaultTextStyle。这解决了应用程序的所有组件的问题,而不仅仅是你正在处理的当前屏幕。
之前
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Center(
child: Text(
"21:34",
style: TextStyle(fontSize: 50),
),
),
Center(
child: Text(
"Wakey - wakey",
style: TextStyle(fontSize: 20),
),
)
],
);
}
后(解决方案):
这里用脚手架小部件包装当前顶部或父小部件
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Center(
child: Text(
"21:34",
style: TextStyle(fontSize: 50),
),
),
Center(
child: Text(
"Wakey - wakey",
style: TextStyle(fontSize: 20),
),
)
],
),
);
}
完整代码:Dartpad或Live代码
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(home: sta()));
class sta extends StatefulWidget {
const sta({Key? key}) : super(key: key);
@override
State<sta> createState() => _staState();
}
var isShow = false;
class _staState extends State<sta> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Center(
child: Text(
"21:34",
style: TextStyle(fontSize: 50),
),
),
Center(
child: Text(
"Wakey - wakey",
style: TextStyle(fontSize: 20),
),
)
],
),
);
}
}
问题:你的小部件没有默认的文本样式,
解决办法:把它包起来!
DefaultTextStyle(
style: TextStyle(),
child: yourWidget,
);
记住,如果你不设置任何颜色,默认文本颜色是白色!
你也可以使用装饰:TextDecoration。无删除下划线