Flutter Widget整理
摘抄了flutter中文網的控件,友善自己查詢使用
1.基礎widget
文本/字型樣式
Text
-
:文本的對齊方式;textAlign
-
、maxLines
:指定文本顯示的最大行數;overflow
-
:代表文本相對于目前字型大小的縮放因子;textScaleFactor
TextStyle
-
:該屬性用于指定行高,具體的行高等于height
*fontSize
;height
-
:由于不同平台預設支援的字型集不同;fontFamily
-
:該屬性和Text的fontSize
都用于控制字型大小。但是有兩給主要差別:textScaleFactor
-
可以精确指定字型大小,而fontSize
隻能通過縮放比例來控制。textScaleFactor
-
主要是用于系統字型大小設定改變時對Flutter應用字型進行全局調整,而textScaleFactor
通常用于單個文本。fontSize
-
TextSpan
DefaultTextStyle
按鈕
RaisedButton
FlatButton
OutlineButton
IconButton
圖檔及ICON
Image
ICON
單選開關和複選框
Switch:單選開關
Checkbox:複選框
輸入框及表單
TextField
- controller:編輯框的控制器;
- focusNode:用于控制TextField是否占有目前鍵盤的輸入焦點。它是我們和鍵盤互動的一個handle。
- InputDecoration:用于控制TextField的外觀顯示,如提示文本、背景顔色、邊框等。
- keyboardType:用于設定該輸入框預設的鍵盤輸入類型;
- textInputAction:鍵盤動作按鈕圖示(即Enter鍵位圖示);
- style:正在編輯的文本樣式。
- textAlign: 輸入框内編輯文本在水準方向的對齊方式。
- autofocus: 是否自動擷取焦點。
- obscureText:是否隐藏正在編輯的文本,如用于輸入密碼的場景等,文本内容會用“•”替換。
- maxLines:輸入框的最大行數,預設為1;如果為
,則無行數限制。null
- maxLength和maxLengthEnforced :maxLength代表輸入框文本的最大長度;
- onChange:輸入框内容改變時的回調函數;注:内容改變事件也可以通過controller來監聽。
- onEditingComplete和onSubmitted:這兩個回調都是在輸入框輸入完成時觸發,比如按了鍵盤的完成鍵(對号圖示)或搜尋鍵(?圖示)。不同的是兩個回調簽名不同,onSubmitted回調是
類型,它接收目前輸入内容做為參數,而onEditingComplete不接收參數。ValueChanged<String>
- inputFormatters:用于指定輸入格式;當使用者輸入内容改變時,會根據指定的格式來校驗。
- enable:如果為
,則輸入框會被禁用,禁用狀态不接收輸入和事件,同時顯示禁用态樣式(在其decoration中定義)。false
- cursorWidth、cursorRadius和cursorColor:這三個屬性是用于自定義輸入框光标寬度、圓角和顔色的。
Form
- autovalidate:是否自動校驗輸入内容;
- onWillPop:決定Form所在的路由是否可以直接傳回(如點選傳回按鈕),該回調傳回一個
對象,如果Future的最終結果是false,則目前路由不會傳回;如果為Future
,則會傳回到上一個路由。此屬性通常用于攔截傳回按鈕。true
- onChanged:Form的任意一個子FormField内容發生變化時會觸發此回調。
2.布局類widget
Row:水準布局
- textDirection:表示水準方向子widget的布局順序;
- mainAxisSize:表示Row在主軸(水準)方向占用的空間;
- mainAxisAlignment:表示子Widgets在Row所占用的水準空間内對齊方式;
- verticalDirection:表示Row縱軸(垂直)的對齊方向,預設是
,表示從上到下。VerticalDirection.down
- crossAxisAlignment:表示子Widgets在縱軸方向的對齊方式;
- children :子Widgets數組。
Column:垂直布局
Flex:彈性布局
Expanded:可以按比例“擴伸”Row、Column和Flex子widget所占用的空間
Wrap:流式布局
- spacing:主軸方向子widget的間距
- runSpacing:縱軸方向的間距
- runAlignment:縱軸方向的對齊方式