行小部件需要一个textDirection



使用行或列小部件会导致以下错误:

════════ 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

根据文档:

如果任何如果没有环境方向性,并且文本方向为需要确定布局顺序(除非该行没有子项或只有一个子项,否则为该情况(或消除mainAxisAlignment的起始值或结束值的歧义text方向不能为null。

最新更新