HelloWord
// Copyright 2018 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: const Text('Welcome to Flutter'),
),
body: const Center(
child: Text('Hello World'),
),
),
);
}
}
- Flutter提供了丰富的Material风格的widgets,在pubspec.yaml文件的flutter部分选择加入uses-material-design: true,通过这个可以使用更多的Material的特性,比如其预定好的图标集
- 该应用继承了StatelessWidget,这将会使应用本身也成为一个widget。在Flutter中,几乎所有都是widget,包括对其(alignment)、填充(padding)和布局(layout)
- Scaffold是Material库中的一个widget,它提供了默认的导航栏、标题和包含主屏幕widget树的body属性,widget树可以很复杂
- 一个widget的主要工作是提供一个build()方法来描述如何根据其他较低级别的widgets来显示自己
- 本示例中的body的widget树中包含了一个Center widget,Center widget又包含了一个Text子widget,Center widget可以将其子widget树对齐到屏幕中心
使用外部Package
可以在pub.dev上找到english_words package以及其他许多开源的package
flutter pub add english_words
Resolving dependencies...
+ english_words 4.0.0
path 1.8.0 (1.8.1 available)
source_span 1.8.1 (1.8.2 available)
test_api 0.4.3 (0.4.9 available)
Downloading english_words 4.0.0...
Changed 1 dependency!
pubspec.yaml文件管理着Flutter应用程序的assets(资源,如图片、package等)和依赖项,可以看到english_words这个依赖项已经添加
在AndroidStudio的编辑器视图中查看pubspec.yaml文件时,点击Pub get会将依赖安装的项目,可以在控制台看到如下:
Running "flutter pub get" in Flutter... 366ms
Process finished with exit code 0
在执行Pub get命令时会自动生成一个名为pubspec.loc文件,这里包含了依赖packages的名称和版本
在lib/main.dart中引入:
import 'package:english_words/english_words.dart';
import 'package:flutter/material.dart';
在输入时,AndroidStudio会提供有关库导入的建议,然后将呈现灰色的导入字符串,表示导入的库截止当前并未使用