Flutter 如何在Fatter中支持文本大小的可访问性,如Android sp大小和iOS动态类型

Flutter 如何在Fatter中支持文本大小的可访问性,如Android sp大小和iOS动态类型,flutter,accessibility,font-size,Flutter,Accessibility,Font Size,在Android中,您可以使用缩放独立像素(sp)设置字体大小,以考虑在设置中选择的字体大小 android:textSize="26sp" 在iOS中,你可以使用类似的方法来实现 label.font = UIFont.preferredFont(forTextStyle: .body) label.adjustsFontForContentSizeCategory = true 如何在颤振中执行相同的操作?默认情况下,颤振已内置。您可以通过指定textScaleFactor来覆盖此行为,

在Android中,您可以使用缩放独立像素(sp)设置字体大小,以考虑在设置中选择的字体大小

android:textSize="26sp"
在iOS中,你可以使用类似的方法来实现

label.font = UIFont.preferredFont(forTextStyle: .body)
label.adjustsFontForContentSizeCategory = true
如何在颤振中执行相同的操作?

默认情况下,颤振已内置。您可以通过指定
textScaleFactor
来覆盖此行为,颤振通常使用该属性应用用户选择的文本大小

您可以通过比较两个文本小部件来测试这一点,第二个小部件的
textScaleFactor
设置为
1.0
。两者的默认字体大小均为14.0逻辑像素

Widget _myWidget() {
  return Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
      Text('Some sample text'),
      Text('Some sample text', textScaleFactor: 1.0),
    ],
  );
}
安卓 在Android设置中,选择最小的字体大小

再做一次,选择最大的尺寸

请注意,第一个文本小部件的文本大小发生了变化,但第二个带有
textScaleFactor
覆盖的文本小部件没有发生变化

网间网操作系统 在iOS中,进入设置>常规>辅助功能>大文本并选择最小的选项

同样,在最大的设置下:


但如何在保持可访问性的同时可变地控制文本大小?正如您所说,
textScaleFactor
覆盖可访问性控件。@JoeLapp,您仍然可以通过设置文本的style属性(
style:TextStyle(fontSize:30)
)将文本大小设置为正常大小。这允许你在保持可访问性的同时控制文本大小。哦!不知何故,我开始假设
fontSize
覆盖
textScaleFactor
,但现在我发现它没有。谢谢有没有办法获得当前的文本比例?如果规模太大,我想重新排列我的小部件,我想我找到了。您可以使用MediaQuery.of(context.textScaleFactor)