StatefulWidget 有状态组件 、 页面上绑定数据、改变页面数据
2024-10-21 09:12:19
一、Flutter 中自定义有状态组件
在 Flutter 中自定义组件其实就是一个类,这个类需要继承 StatelessWidget/StatefulWidget。StatelessWidget 是无状态组件,状态不可变的 widgetStatefulWidget 是有状态组件,持有的状态可能在 widget 生命周期改变。通俗的讲:如果我们想改变页面中的数据的话这个时候就需要用到 StatefulWidget
import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget {
//Flutter2.2.0 之后需要注意把 Key 改为可空类型 {Key? key} 表示 key 为可空类型
const MyApp({Key? key}) : super(key: key); @override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('有状态的组件')),
body: HomePage(),
));
}
} class HomePage extends StatefulWidget {
//Flutter2.2.0 之后需要注意把 Key 改为可空类型 {Key? key} 表示 key 为可空类型
HomePage({Key? key}) : super(key: key); _HomePageState createState() => _HomePageState();
} class _HomePageState extends State<HomePage> {
int count = 0; @override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Chip(label: Text("${this.count}")),
RaisedButton(
child: Text('增加'),
onPressed: () {
// print(this.count);
setState(() {
this.count++;
});
},
)
],
));
}
}
最新文章
- iOS用户信息单例的创建
- android editText 监听事件
- 何必苦等VS2015?来看看VS2013下实现移动端的跨平台开发
- Linux socket多进程服务器框架二
- MVC4+WebApi+Redis Session共享练习(上)
- Android || IOS录制mp3语音文件方法
- URAL 1137 Bus Routes(欧拉回路路径)
- js中arguments,caller,callee,apply的用法小结
- 【Unity3D】生成工程报错解决—UnityEditor.HostView:OnGUI() Error building Player: Couldn&#39;t build player because of unsupported data on target platform.
- gitphp日期乱码解决方案
- GeoServer基础教程(一):环境搭建篇
- C字符串总结+字符串库实现(增,改,删,查):
- 将markdown格式转化为bootstrap风格html
- Nginx将项目配置在子目录
- STAR法则的感想
- 网页 cookie
- 学习pthreads,使用属性对象创建结合线程和分离线程
- ajax-------封装
- Android开发:修改eclipse里的Android虚拟机路径
- Web应用启动时,后台自动启动一个线程(转)