fontSize
的默认值是14.0
。因此,textScaleFactor: 2.0
似乎与fontSize: 28.0
相同,如我的代码示例所示:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Title')),
body: Row(
children: <Widget>[
new Text("Jane", textScaleFactor: 2.0),
new Text(" Doe", style: new TextStyle(fontSize: 28.0)),
],
)
)
);
}
}
优缺点都有什么?在特定情况下,是否有任何建议何时使用?
它们在渲染中没有区别。他们的目的有什么变化。
字体大小通常是每个组件的值。虽然比例因子更全球化。您可以直接在Text
上覆盖比例因子这一事实只是一个奖励。
在典型的应用程序中,您将拥有以下内容:
MediaQuery(
data: MediaQuery.of(context).copyWith(textScaleFactor: 2.0),
child: Whatever(
child: Text("Foo", style: Theme.of(context).textTheme.headline),
),
);
基本上,将textScaleFactor
视为缩放选项。而font-size用于将标题与其内容分开。
据我所知,textScaleFactor
is用于访问。
有一个Android系统选项可以增加文本大小(而不是整个UI比例)。
似乎没有技术差异。
来自TextStyle
文档:
/// During painting, the [fontSize] is multiplied by the current
/// `textScaleFactor` to let users make it easier to read text by increasing
/// its size.
fontSize只是一个普通的大小,你给它15.0,它将是15.0像素
但textScaleFactor是每个逻辑像素的字体像素数。
例如,如果文本比例因子为1.5,则文本将比指定的字体大小大50%。在这种情况下:15.0 px +(15.0 * 0.5 px)= 15.0 px + 7.5 px = 22.5px
如果未指定textScaleFactor,则默认值为1