我绝对是Flutter的初学者。我一直在尝试阅读各种书籍,youtube视频,网络指南,但是当我在第一个hello world类型的Widget中关注它们时,几乎所有这些书籍都会失败。
[这里是指南提供的一些代码示例,该指南在虚拟设备的红色屏幕上引发了长时间错误,抱怨方向性:
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(
home: Text('Hello World'),
));
但是如果我这样更改它,它将起作用:
home: Text('Hello World', textDirection: TextDirection.ltr),
首先,是否需要为每个文本字段设置textDirection,还是可以全局设置它?我很惊讶我必须进行全部设置-如果没有指定,我会认为从左到右将是默认值。
第二,最近扑扑改变了吗?我发现的每本指南,教程或书似乎都没有在任何地方设置任何textDirection,它是否已更改,或者我的设置/配置是否存在问题?
这很奇怪。您通常不必设置textDirection。实际上,我从来没有。我相信您的问题只是缺少的Scaffold
小部件。
每个页面都应包含在一个脚手架中,它设置了许多标准值,由于许多原因,它非常重要。
return Scaffold(
body: Text("Hello World")
这里是更完整的。 Flutter应用程序的标准起点。
main()调用runApp(MyApp));
,这又将MyHomePage()
设置为起点。在MyApp中,您可以设置一些Appwide参数,例如主题。然后,您的实际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(
),
);
}
}