使用行或列窗口小部件会导致以下错误:
════════ Exception caught by rendering library ═════════════════════════════════════════════════════
Horizontal RenderFlex with MainAxisAlignment.start has a null textDirection, so the alignment cannot be resolved.
'package:flutter/src/rendering/flex.dart':
Failed assertion: line 462 pos 18: 'textDirection != null'
The relevant error-causing widget was:
Row file:///C:/Users/...
════════════════════════════════════════════════════════════════════════════════════════════════════
除非我为行/列窗口小部件提供textDirection属性,否则它将起作用。这是一个示例:
import 'package:flutter/material.dart';
void main() {
runApp(MyWidget());
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
// textDirection: TextDirection.ltr,
children: [
BlueBox(),
BlueBox(),
BlueBox(),
],
);
}
}
我不理解为什么除非添加textDirection属性,否则代码不起作用。 注意:我正在关注此文档https://flutter.dev/docs/codelabs/layout-basics
答案 0 :(得分:1)
根据docs:
textDirection参数默认为环境方向性,如果 任何。如果没有环境方向性,并且文本方向为 是确定布局顺序所必需的(通常 除非该行没有孩子或只有一个孩子),否则 清除mainAxisAlignment的开始或结束值, textDirection不能为null。