佈局的屬性

Column

由上至下的排序

Row

由左至右的排序

Expanded

只能使用在繼承Flex以下的Widget,常使用在Cloumnrow的子項

因為有些widget不會限制長寬,要有expanded來將最大值限制在手機區塊內

ListView

使用ListView是可以有滾動效果 可以透過builder提升效能 使用方法為

ListView.builder(item: list.length, itemBuilder: (ctx,index){list[index].title})

Spacer

可以在任何row,colume使用 佔用剩餘所有空間的意思

TextField

輸入框

要記得關閉

下拉式選單

Dismissable

key參數必要,才能確定要滑動刪除哪筆資料 也可以分為向左滑動與向右滑動,執行不同功能 滑動刪除效果

Snackbar

會在螢幕下面調出一個訊息框 在Scaffold階層底下可以使用

    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(
        duration: Duration(seconds: 3),
        content: Text('Expense deleted'),
      ),
    );

InkWell

可以讓沒有事件的元件增加點擊事件之類的功能 與GestureDetector的差別在於 GestureDetector提供更多的點擊事件,InkWell提供點擊特效

兩者差異出處

Stack

類似ColumnRow,但是可以讓所有子元件重疊在一起

SwitchListTile

有大標題與子標題的開關

Drawer

側邊欄,可以在裡面放Column就可以實現側邊欄的菜單

WillPopScope

當用戶離開用任何方式離開當下頁面就會觸發,不管是實體按鈕或是虛擬按鈕 onWillPop:true 允許返回false不允許返回

Form

有額外的驗證功能,並顯示在畫面

在form裡面要輸入框時要用TextFormField取代TextField

只要在Form裏面,要使用的組件基本上都會有form關鍵字

Dismissible

新增滑動移除的功能,需要增加key值才能知道要動作的是哪一個項目

後續慢慢補上