Flutter有狀態組件使用詳解
有狀態組件
flutter 主要有分有狀態組件 StatefulWidget 和無狀態組件 StatelessWidget,前面我們使用到的都是無狀態組件,沒有讓頁面上的內容發生變化,當我們有需要對頁面的內容進行動態修改的時候 ,如果我們使用無狀態組件,頁面上的內容就不會被更新,這時需要用到有狀態組件。
有狀態組件就是繼承瞭StatefulWidget的組件,內容更改時調用
setState(() { 更改的內容});
// ignore_for_file: prefer_const_constructors, prefer_collection_literals, deprecated_member_use, unused_local_variable, must_be_immutable, prefer_const_literals_to_create_immutables import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text('Flutter Demo'), ), body: const HomeContent(), ), theme: ThemeData( primarySwatch: Colors.yellow, ), ); } } //有狀態自定義組件有兩個類,我們需要返回的寫在第二個類中 class HomeContent extends StatefulWidget { const HomeContent({Key? key}) : super(key: key); @override _HomeContentState createState() => _HomeContentState(); } class _HomeContentState extends State<HomeContent> { int count = 0; @override Widget build(BuildContext context) { return Center( child: Column( children: [ Chip( label: Text("$count"), ), ElevatedButton( onPressed: () { setState(() { count++; }); }, child: Text("點擊加一")) ], ), ); } }
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- flutter狀態管理Provider的使用學習
- Flutter 如何正確顯示SnackBar
- Flutter之PageView頁面緩存與KeepAlive
- Flutter實現底部導航欄創建詳解
- Flutter之可滾動組件子項緩存 KeepAlive詳解