真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

flutter控件繼承,flutter父組件調(diào)用子組件方法

Flutter/Dart - 類的繼承

Dart中的繼承:

創(chuàng)新互聯(lián)專注于沙縣企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。沙縣網(wǎng)站建設(shè)公司,為沙縣等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

1.子類使用extends關(guān)鍵詞來繼承父類

2.子類會(huì)繼承父類里面可見的屬性和方法,但是不會(huì)繼承構(gòu)造函數(shù)

3.子類能復(fù)寫父類的方法 getter和setter

子類使用extends關(guān)鍵詞來繼承父類

子類里面可以擴(kuò)展自己屬性和方法

Flutter_定義控件StatefulWidgets和StatelessWidget

Stateful(有狀態(tài)) 和 stateless(無狀態(tài)) widgets

stateless widget 沒有內(nèi)部狀態(tài). Icon、 IconButton, 和Text 都是無狀態(tài)widget, 他們都是 StatelessWidget的子類。

stateful widget 是動(dòng)態(tài)的. 用戶可以和其交互 (例如輸入一個(gè)表單、 或者移動(dòng)一個(gè)slider滑塊),或者可以隨時(shí)間改變 (也許是數(shù)據(jù)改變導(dǎo)致的UI更新). Checkbox, Radio, Slider, InkWell, Form, and TextField 都是 stateful widgets, 他們都是 StatefulWidget的子類。

StatefulWidget類

具有可變狀態(tài)的小部件。

狀態(tài)是(1)在構(gòu)建窗口小部件時(shí)可以同步讀取的信息,以及(2)在窗口小部件的生命周期內(nèi)可能會(huì)更改的信息。這是小工具實(shí)施者的責(zé)任,以確保國家的及時(shí)通知當(dāng)這種狀態(tài)的改變,使用State.setState。

有狀態(tài)窗口小部件是一個(gè)窗口小部件,它通過構(gòu)建一個(gè)更具體地描述用戶界面的其他窗口小部件來描述用戶界面的一部分。構(gòu)建過程以遞歸方式繼續(xù),直到用戶界面的描述完全具體(例如,完全由RenderObjectWidget組成,其描述具體的RenderObject)。

當(dāng)您描述的用戶界面部分可以動(dòng)態(tài)更改時(shí)(例如由于具有內(nèi)部時(shí)鐘驅(qū)動(dòng)狀態(tài)或依賴于某些系統(tǒng)狀態(tài)),狀態(tài)窗口小部件非常有用。對于僅依賴于對象本身中的配置信息以及窗口小部件膨脹的 BuildContext的組合,請考慮使用 StatelessWidget。

StatefulWidget實(shí)例本身是不可變的,并且將它們的可變狀態(tài)存儲(chǔ)在由createState方法創(chuàng)建的單獨(dú)State對象中 ,或者存儲(chǔ)在State訂閱的對象中,例如Stream或ChangeNotifier對象,其引用存儲(chǔ)在StatefulWidget的最終字段中本身。

框架在膨脹StatefulWidget時(shí) 調(diào)用createState,這意味著如果該窗口小部件已插入到多個(gè)位置的樹中,則多個(gè)State對象可能與同一StatefulWidget關(guān)聯(lián)。同樣,如果StatefulWidget從樹中移除,后來在樹再次插入時(shí),框架將調(diào)用createState再創(chuàng)建一個(gè)新的國家目標(biāo),簡化的生命周期狀態(tài)的對象。

如果StatefulWidget的創(chuàng)建者使用GlobalKey作為其 鍵,則StatefulWidget在從樹中的一個(gè)位置移動(dòng)到另一個(gè)位置時(shí)保持相同的State對象。由于具有GlobalKey的窗口小部件可以在樹中的至多一個(gè)位置使用,因此使用GlobalKey的窗口小部件最多只有一個(gè)關(guān)聯(lián)元素。當(dāng)通過將與該窗口小部件關(guān)聯(lián)的(唯一)子樹從舊位置移植到新位置(而不是在該位置重新創(chuàng)建子樹)時(shí),框架利用此屬性將全局鍵從樹中的一個(gè)位置移動(dòng)到另一個(gè)位置時(shí)利用此屬性。新的位置)。與StatefulWidget關(guān)聯(lián)的State對象與子樹的其余部分一起被移植,這意味著State對象在新位置被重用(而不是被重新創(chuàng)建)。但是,為了有資格進(jìn)行嫁接,必須將窗口小部件插入到從舊位置移除它的同一動(dòng)畫幀中的新位置。

StatefulWidget有兩個(gè)主要類別。

首先是其中一個(gè)分配資源State.initState并在他們的處置State.dispose,但不依賴于InheritedWidget S或致電State.setState。這些小部件通常在應(yīng)用程序或頁面的根目錄中使用,并通過ChangeNotifier, Stream或其他此類對象與子小部件進(jìn)行通信。遵循這種模式的有狀態(tài)小部件相對便宜(就CPU和GPU周期而言),因?yàn)樗鼈儤?gòu)建一次然后永不更新。因此,它們可能有一些復(fù)雜和深刻的構(gòu)建方法。

第二類是使用State.setState或依賴于 InheritedWidget的小部件。這些通常會(huì)在應(yīng)用程序的生命周期內(nèi)重建多次,因此最小化重建此類窗口小部件的影響非常重要。(他們也可以使用State.initState或 State.didChangeDependencies并分配資源,但重要的是他們重建。)

可以使用幾種技術(shù)來最小化重建有狀態(tài)窗口小部件的影響:

StatelessWidget類

一個(gè)不需要可變狀態(tài)的小部件。

無狀態(tài)窗口小部件是一個(gè)窗口小部件,它通過構(gòu)建一個(gè)更具體地描述用戶界面的其他窗口小部件來描述用戶界面的一部分。構(gòu)建過程以遞歸方式繼續(xù),直到用戶界面的描述完全具體(例如,完全由RenderObjectWidget組成,其描述具體的RenderObject)。

當(dāng)您描述的用戶界面部分不依賴于對象本身的配置信息以及窗口小部件膨脹的BuildContext時(shí),無狀態(tài)窗口小部件非常有用。對于可以動(dòng)態(tài)更改的組合,例如由于具有內(nèi)部時(shí)鐘驅(qū)動(dòng)狀態(tài)或依賴于某些系統(tǒng)狀態(tài),請考慮使用StatefulWidget。

無狀態(tài)窗口小部件的構(gòu)建方法通常僅在以下三種情況下調(diào)用:第一次將窗口小部件插入樹中,窗口小部件的父窗口更改其配置時(shí),以及何時(shí)依賴于更改的InheritedWidget。

如果窗口小部件的父級將定期更改窗口小部件的配置,或者它依賴于經(jīng)常更改的繼承窗口小部件,則優(yōu)化構(gòu)建方法的性能以保持流暢的呈現(xiàn)性能非常重要。

可以使用幾種技術(shù)來最小化重建無狀態(tài)窗口小部件的影響:

Flutter Bloc實(shí)現(xiàn)原理

1、繼承SingleChildStatelessWidget,就是一個(gè)widget,通過create 傳入一個(gè)Bloc對象

1、Bloc繼承自BlocBase,BlocBase中創(chuàng)建了StreamController對象,為多訂閱對象

其中onCounterEvent((event, emit)為初始化創(chuàng)建_eventController監(jiān)聽

2、Bloc中創(chuàng)建_eventController,為事件通知

3、BlocBase創(chuàng)建_stateController,為狀態(tài)刷新通知

4、add方法是執(zhí)行廣播通知

5、處理完數(shù)據(jù)之后執(zhí)行emit()方法,其中emit方法是stateController廣播

1、 BlocBuilder繼承自BlocBuilderBase,_BlocBuilderBaseState中build方法返回的是BlocListener

2、BlocListener繼承BlocListenerBase,_BlocListenerBaseState中_subscribe()添加監(jiān)聽stateController廣播通知


當(dāng)前標(biāo)題:flutter控件繼承,flutter父組件調(diào)用子組件方法
URL鏈接:http://weahome.cn/article/dseeohc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部