我每次都必须设置 textDirection 吗?

Do I have to set the textDirection every time?

我绝对是 Flutter 的初学者。我一直在尝试关注各种书籍、youtube 视频、网络指南,但当我在第一个 hello world type Widget 关注它们时,几乎所有这些都失败了。

这是一个指南给出的代码示例,它在虚拟设备上的红色屏幕上抛出一个长错误,抱怨方向性:

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
  home: Text('Hello World'),
));

但是如果我这样改变它,它会起作用:

home: Text('Hello World', textDirection: TextDirection.ltr),

首先,我需要为每个文本字段设置textDirection,还是可以全局设置?我很惊讶我必须设置它 - 如果没有指定,我会认为从左到右将是默认设置。

其次,flutter最近改了吗?我找到的每本指南、教程或书籍似乎都没有在任何地方设置任何 textDirection,它是否已更改或我的 setup/config 有问题?

这很奇怪。您通常不必设置 textDirection。事实上,我从来没有。我相信您的问题只是缺少 Scaffold 小部件。

每个页面都应该包含在一个脚手架中,它设置了很多标准值并且出于多种原因非常重要。

 return Scaffold(
      body: Text("Hello World")

这里更完整。 Flutter 应用程序的标准起点。

main() 调用 runApp(MyApp));,后者又将 MyHomePage() 设置为起点。在 MyApp 中你可以设置一些 Appwide 参数,比如 Themes。您的实际 UI 和代码然后进入 MyHomePage.

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
//This is your actual UI
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Tryout"),
      ),
      body: Center(

      ),
    );
  }
}