flutter匯總(1)

1、FocusNode

FocusNode可以實現(xiàn)對輸入框的獲取或者失去焦點的監(jiān)聽。

FocusNode focusNode = new FocusNode();
focusNode.addListener(() {
   setState(() {
     keyboardAppeared = focusNode.hasFocus;
   });
 });

2、一些控件的總結

Offstage: 控制child顯示還是隱藏,offstage為true時隱藏
Chip: 用作顯示標簽,自帶刪除按鈕。左側可以設置小圖標,label顯示文本
ClipPath: 切割控件成不同的形狀,clipper屬性里面設置切割的path。
Material: 可設置陰影、圓角
ClipRRect: 高效切圓角
ClipOval: 橢圓
CircleAvatar: 設置圓形頭像
futureBuilder: 根據(jù)網(wǎng)絡請求的不同狀態(tài)顯示不同的視圖,將請求數(shù)據(jù)的方法賦值給全局變量,可以防止futureBuilder不必要的重繪問題
IgnorePointer:控制控件是否接收觸摸事件

3、extends、mixin、implements之間的區(qū)別

  • 繼承(關鍵字 extends)、混入 mixins (關鍵字 with)、接口實現(xiàn)(關鍵字 implements)。這三者可以同時存在,前后順序是extends -> mixins -> implements。
  • extends 繼承在flutter中是單繼承,構造函數(shù)不能繼承,子類重寫超類的方法,要用@override,子類調用超類的方法,要用super。
  • implements 接口實現(xiàn),也是Class,如果有一個類 A,你想讓類B擁有A的API,但又不想擁有A里的實現(xiàn),那么你就應該把A當做接口,類B implements 類A.
    當class被當做interface用時,class中的方法就是接口的方法,需要在子類里重新實現(xiàn),在子類實現(xiàn)的時候要加@override
    當class被當做interface用時,class中的成員變量也需要在子類里重新實現(xiàn)。在成員變量前加@override
  • mixin 混入,是一種在多個類層次結構中復用類代碼的方法。在dart21.版本中,mixins類只能繼承自object,mixins類不能有構造函數(shù),一個類可以mixins多個mixins類。

4、State對象的初始化流程

initState() : 一旦State對象被創(chuàng)建,initState方法是第一個(構造函數(shù)之后)被調用的方法??赏ㄟ^重寫來執(zhí)行額外的初始化,如初始化動畫、控制器等。重寫該方法時,應該首先調用super.initState()。在initState中,無法真正使用context,因為框架還沒有完全將其與state關聯(lián)。initState在該State對象的生命周期內將不會再次調用。

didChangeDependencies(): 這是第二個被調用的方法。在這一階段,context已經(jīng)可用。如果你的Widget鏈接到了一個InheritedWidget并且/或者你需要初始化一些listeners(基于context),通常會重寫該方法。請注意,如果Widget鏈接到InheritedWidget,則每次重建Widget時都會調用此方法。如果重寫此方法,則應首先調用super.didChangeDependencies()。

build(BuildContext context): 此方法在didChangeDependencies()、didUpdateWidget()之后被調用。每次State對象更新(或當InheritedWidget有新的通知時)都會調用該方法!我們一般都在build中來編寫真正的功能代碼。為了強制重建,可以在需要的時候調用setState((){...})方法。

dispose(): 此方法在Widget被廢棄時調用??芍貙懺摲椒▉韴?zhí)行一些清理操作(如解除listeners),并在此之后立即調用super.dispose()。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容