您现在的位置是:首页 >技术交流 >flutter学习之旅 -有状态的组件(StatefulWidget)网站首页技术交流
flutter学习之旅 -有状态的组件(StatefulWidget)
简介flutter学习之旅 -有状态的组件(StatefulWidget)
我们重建一个项目
flutter create 项目名
我们会看到
在
Flutter
中自定义组件其实就是一个类,这个类需要继承StatelessWidget/StatefulWidget
- StatelessWidget是无状态组件,状态不可改变的widget
- StatefulWidget是有状态的组件,持有的状态可能在widget生命周期改变
我们要想改变页面中的数据的话这个时候我们就要用到
StatefulWidget
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
final
和const
定义的是常量,常量的值不可改变
const
必须声明的时候赋值;final
可以先声明后赋值,也可以声明赋值
final定义数组
void main(){
final List l=[];
l.add(12);
l.add(22);
}
以上的写法是被允许的,因为是往数组里添加数据而不是赋值
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。