主应用程序屏幕没有这个问题,所有的文本显示他们应该。
然而,在新屏幕中,所有的文本部件下面都有一些奇怪的黄线/双线。
你知道为什么会这样吗?
主应用程序屏幕没有这个问题,所有的文本显示他们应该。
然而,在新屏幕中,所有的文本部件下面都有一些奇怪的黄线/双线。
你知道为什么会这样吗?
当前回答
黄线来自_errorTextStyle。文档声明你应该定义一个DefaultTextStyle父类(或者使用Material,它可以为你做这件事):
MaterialApp使用这个TextStyle作为它的DefaultTextStyle来鼓励开发者有意识地使用他们的DefaultTextStyle。 在材质设计中,大多数文本小部件都包含在材质小部件中,这设置了一个特定的DefaultTextStyle。如果您看到使用这种文本样式的文本,请考虑将文本放在Material小部件(或另一个设置DefaultTextStyle的小部件)中。
开发没有素材的Flutter应用程序不是大多数人做的事情,但如果这是你的用例,你应该使用DefaultTextStyle。
与公认的答案相反,Theme没有设置DefaultTextStyle,因此它不能解决您的问题。Scaffold确实解决了这个问题,因为它包含了Material,而Material又定义了DefaultTextStyle,但是对于对话框、英雄等来说,Scaffold有点超出了你的需要。
要永久地解决整个应用程序的这个问题,你可以在MaterialApp构建器中设置DefaultTextStyle。这解决了应用程序的所有组件的问题,而不仅仅是你正在处理的当前屏幕。
其他回答
问题:你的小部件没有默认的文本样式,
解决办法:把它包起来!
DefaultTextStyle(
style: TextStyle(),
child: yourWidget,
);
记住,如果你不设置任何颜色,默认文本颜色是白色!
文本样式有一个可以设置为none的装饰参数
Text("My Text",
style: TextStyle(
decoration: TextDecoration.none,
)
);
另外,正如其他人提到的,如果你的文本小部件在脚手架或材料小部件的树中,你就不需要装饰文本样式了。
使用DefaultTextStyle()小部件设置文本的文本样式。
DefaultTextStyle(
style: kTempTextStyle,
child: Text('Hello world'),
)
你可以给你自己的文本样式,因为你想。
const kTempTextStyle = TextStyle(
fontFamily: 'Spartan MB',
fontSize: 100.0,
decoration: null,
);
你也可以把你的脚手架作为你的MaterialApp的家。这对我很管用。
return MaterialApp(
home: Scaffold(
body: Container(
child: SingleChildScrollView(child: Text('Test')),
),
),
);
您所需要做的就是提供一个Material小部件,或者一个内部覆盖这个小部件的Scaffold。你可以通过以下方法做到这一点:
使用材料(简单且更好): 材料( 颜色:颜色。transparent, // <——如果需要,添加这个 孩子:文本(“你好”), ) 设置文本。样式属性: 文本( “你好”, style: TextStyle(decoration: TextDecoration.none), //设置 ) 提供支架: 支架(身体:文本('你好'))
修复使用英雄时黄色文本的问题:
就像aaronvargas提到的,当你在两边使用Hero时,你可以把你的child包在Material中。例如:
Hero(
tag: 'fooTag',
child: Material( // <--- Provide Material
type: MaterialType.transparency,
child: YourWidget(),
),
);