我在 android studio 中运行 flutter 代码时遇到异常。
我/扑(5360):???小部件库捕获的异常 ????????????????????????????????????????????? ??????????????? I/flutter ( 5360): 以下断言被抛出 building Text("xyz"): I/flutter (5360): No Directionality widget found。I/flutter (5360):RichText 小部件需要一个 Directionality 小部件祖先。I/flutter ( 5360): 找不到方向性祖先的特定小部件是: I/flutter ( 5360): RichText(softWrap: wrapping at box width, maxLines: unlimited, text: "xyz") I/flutter ( 5360) ): 受影响小部件的所有权链是: I/flutter ( 5360): RichText ? 文本 ?中心 ?容器 ?[root] I/flutter (5360):通常,Directionality 小部件由 MaterialApp 或 WidgetsApp 小部件在 I/flutter (5360):应用程序小部件树的顶部引入。
代码片段:
import 'package:flutter/material.dart';
void main() {
runApp(
Container(child: Center(child: Text("xyz"))),
);
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么这个例外说
I/flutter (5360):通常,Directionality 小部件由 MaterialApp 或 WidgetsApp 小部件在...
因为在 flutter 中一切都是小部件,所以任何小部件都应该为我们工作。
Cop*_*oad 10
如果您使用的是材质小部件组件,例如Scaffold, Material,则无需textDirection在Text小部件中指定,因为Directionality在这些情况下隐式提供。因此,一个好的解决方案是使用:
Scaffold(body: Text("xyz"))
Run Code Online (Sandbox Code Playgroud)
但是如果你不使用它,你将不得不
Text(
'xyz',
textDirection: TextDirection.ltr,
)
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您使用方向性构造函数,您的问题将得到解决
Widget build(BuildContext context) {
return Directionality(
textDirection: TextDirection.ltr,
child: Container(
color: myColor,
child: Center(
child: RaisedButton(
onPressed: () {
print('You pressed me');
changeColor();
},
child: Text('Click', textDirection: TextDirection.ltr)
),
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4671 次 |
| 最近记录: |