文章目录
flutter create 项目名
我们会看到
- StatelessWidget是无状态组件,状态不可改变的widget
- StatefulWidget是有状态的组件,持有的状态可能在widget生命周期改变
StatefulWidget格式
//有状态组件
class HomePage extends StatefulWidget {
const HomePage ({super.key});
State<HomePage> createState() => _MyNum();//要实现createState方法
}
class _MyNum extends State<HomePage> {//要继承以上的类型
Widget build(BuildContext context) {
return Container();
}
}
实现num增加
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text("flutter App")),
body: const HomePage(),
),
);
}
}
//有状态组件
class HomePage extends StatefulWidget {
const HomePage({super.key});
State<HomePage> createState() => _MyNum();
}
class _MyNum extends State<HomePage> {
int _numData = 0;
Widget build(BuildContext context) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
"$_numData",
style: Theme.of(context).textTheme.headline2,
),
const SizedBox(height: 60),
ElevatedButton(
onPressed: () {
setState(() {
_numData++;
});
},
child: const Text("+1"))
],
),
);
}
}
final
const
必须声明的时候赋值;final
可以先声明后赋值,也可以声明赋值
final定义数组
void main(){
final List l=[];
l.add(12);
l.add(22);
}