部件示例Flutter 應(yīng)用程序的入口點(diǎn)是 main 函數(shù)。 要在屏幕上放置用戶界面元素的部件,在 main()中調(diào)用 runApp()并將部件層次結(jié)構(gòu)根部的部件作為參數(shù)傳遞。
image.png
無狀態(tài) VS 有狀態(tài)部件有兩種形式:無狀態(tài)和有狀態(tài)。 無狀態(tài)部件在創(chuàng)建和初始化后不會(huì)更改它們的內(nèi)容,而有狀態(tài)部件維護(hù)一些程序運(yùn)行時(shí)可變的狀態(tài),例如,響應(yīng)用戶交互。
image.png
在實(shí)例中無狀態(tài)的Widget繼承自StatelessWidget,其初始化之后,不會(huì)更改內(nèi)部?jī)?nèi)容。
有狀態(tài)的Widget繼承自StatefulWidge,有狀態(tài)的部件返回一個(gè)負(fù)責(zé)為給定狀態(tài)構(gòu)建部件樹的 State 類。 狀態(tài)更改時(shí),將重建窗口部件樹的關(guān)聯(lián)部分。通過setState()方法改變部件狀態(tài)。狀態(tài)在傳遞給 setState()的函數(shù)中更新。 當(dāng)調(diào)用 setState()時(shí),該函數(shù)可以設(shè)置任何內(nèi)部狀態(tài)。