Menu
快讀
  • 旅遊
  • 生活
    • 美食
    • 寵物
    • 養生
    • 親子
  • 娛樂
    • 動漫
  • 時尚
  • 社會
  • 探索
  • 故事
  • 科技
  • 軍事
  • 国际
快讀

Google官網flutter有狀態小部件教程

2020 年 2 月 2 日 技术刚刚好

本頭條核心宗旨

歡迎來到「技術剛剛好」作者,「技術剛剛好」是個人維護,每天至少更新一篇Flutter技術文章,實時爲大家播報Flutter最新消息。如果你剛好也在關注Flutter這門技術,那就跟我一起學習進步吧,你的贊,收藏,轉發是對我個人最大的支持,維護不易,歡迎關注。

技術剛剛好經曆

近幾年,移動端跨平台開發技術層出不窮,從Facebook家的ReactNative,到阿裏家WEEX,前端技術在移動端跨平台開發中大展身手,技術剛剛好作爲一名Android開發,經曆了從Reactjs到Vuejs的不斷學習。而在2018年,我們的主角變成了Flutter,這是Goolge開源的一個移動端跨平台解決方案,可以快速開發精美的移動App。希望跟大家一起學習,一起進步!

本文核心要點

有狀態窗口小部件定義爲在其生命周期內更改其狀態的任何窗口小部件

StatefulWidget:

有狀態窗口小部件是一個窗口小部件,它通過構建一個更具體地描述用戶界面的其他窗口小部件來描述用戶界面的一部分 . 構建過程以遞歸方式繼續,直到用戶界面的描述完全具體(例如,完全由RenderObjectWidgets組成,其描述具體的RenderObjects) .

當您描述的用戶界面的一部分可以動態改變時,有狀態小部件很有用,例如,由于具有內部時鍾驅動狀態,或取決于某些系統狀態 . 對于僅依賴于對象本身中的配置信息以及窗口小部件膨脹的BuildContext的組合,請考慮使用StatelessWidget .

StatefulWidget實例本身是不可變的,並將其可變狀態存儲在由createState方法創建的單獨State對象中,或者存儲在該State所訂閱的對象中,例如Stream或ChangeNotifier對象,其引用存儲在StatefulWidget的最終字段中本身 .

Google官網flutter有狀態小部件教程

有狀態

main.dart文件

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    home: MyButton(),
  ));
}

class MyButton extends StatefulWidget {
  @override
  MyButtonState createState() {
    return MyButtonState();
  }
}

class MyButtonState extends State<MyButton> {
  int counter = 0;
  List<String> strings = ['Flutter', 'is', 'cool', "and","awesome!"];
  String displayedString = "Hello World!";

  void onPressOfButton() {
    setState(() {
      displayedString = strings[counter];
      counter = counter < 4 ? counter + 1 : 0;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Stateful Widget"),
        backgroundColor: Colors.green,
      ),
      body: Container(
        child: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(displayedString, style: TextStyle(fontSize: 40.0)),
              Padding(padding: EdgeInsets.all(10.0)),
              RaisedButton(
                child: Text(
                  "Press me",
                  style: TextStyle(color: Colors.white),
                ),
                color: Colors.red,
                onPressed: onPressOfButton,
              )
            ],
          ),
        ),
      ),
    );
  }
}

謝謝觀看技術剛剛好的文章,技術剛剛好是個人維護,每天至少更新一篇Flutter技術文章,實時爲大家播報Flutter最新消息。如果你剛好也在關注Flutter這門技術,那就跟我一起學習進步吧,你的贊,收藏,轉發是對我個人最大的支持,維護不易,歡迎關注。

科技

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

©2025 快讀 | 服務協議 | DMCA | 聯繫我們