Text应该有默认方向吧?我写的Text不设置textDirection: TextDirection.ltr会报"No Directionality widget found."错误,我不想每次都写这个,太麻烦了.有什么方法可以不写这个方向吗?
我的代码:
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: double.infinity,
color: Colors.greenAccent,
child: Column(
children: [
Text(
"hello1654564",
textDirection: TextDirection.ltr,//不写这个就会报No Directionality widget found.错误
style: TextStyle(color: Colors.black),
),
],
),
);
}
你给你代码不容易复现出现的错误;下面是出现这种情形之一
报错内容:
No Directionality widget found widgets require a Directionality widget ancestor'),
1. 先说你给出方法,直接给Text设定textDirection属性这样也行
2. 其实根据给出提示只要在父组件包括一个Directionality组件,并且设定文字的方向就行; 例如:
这种方法之所以可以生效是
因为Text组件在发现没有设定文字方向会一层一层从其父组件中寻找;继承父组件的文字方向
我是这样理解的哈🤣其实更通用的写法是在main方法是使用MaterialApp 或者 CupertinoApp 组件包裹其下面的子组件(MaterialApp或者 CupertinoApp都指定了默认的文字方向;所以不会报错);
上面代码效果把Container 换成 ColoredBox 一样效果;Container 是一个组合的容器,当你需要设定magin,padding,decoration是不错的选择😄😄
B站有一个不错博主(王叔不秃)的一系列的视频不错;推荐一下