Flutter TextField 控件

一個material design的文本字段。
1、文本字段允許用戶使用硬件鍵盤或屏幕鍵盤輸入文本。 只要用戶更改字段中的文本,文本字段就會調(diào)用 onChanged
回調(diào)函數(shù)。如果用戶指示他們已完成在字段中鍵入(例如,通過按下軟鍵盤上的按鈕),則文本字段調(diào)用 onSubmitted
回調(diào)函數(shù)。
2、要控制文本字段中顯示的文本,請使用controller
控制器。例如,要設置文本字段的初始值,請使用已包含某些文本的controller。controller還可以控制選擇和合成區(qū)域(并觀察文本,選擇和合成區(qū)域的變化)。
3、默認情況下,文本字段具有在文本字段下方繪制分隔符的裝飾(即下劃線)。您可以使用decoration屬性來控制裝飾,例如通過添加label或icon。如果將decoration屬性設置為null,則將刪除所有裝飾,包括為了裝飾引入的額外填充(padding)以節(jié)省標簽的空間。
如果decoration
非空(這是默認設置),則文本字段要求其祖先之一為“ Material
”窗口小部件。點擊TextField時,會觸發(fā)在材質(zhì)上繪制的墨水飛濺效果,請參閱ThemeData.splashFactory進行配置。
4、[maxLines]屬性可以設置為null,刪除對行數(shù)的限制。默認情況下,它是1,這意味著這是一個單行的文本字段。(maxLines)不能是零。
5、(maxLength)屬性默認設置為零,這意味著文本字段中允許的字符數(shù)是不受限制的。如果設置了[maxLength],將在字段下面顯示一個字符計數(shù)器,顯示輸入了多少字符以及允許輸入多少字符。在輸入[maxLength]字符后,將忽略額外的輸入,除非[maxLengthEnforced]設置為false。TextField使用[LengthLimitingTextInputFormatter]強制將長度延長,這是在提供的(inputformatter)之后進行計算的,如果有的話。[maxLength]值必須為null或大于0。
7、如果將[maxLengthEnforced]設置為false,則可能輸入大于[maxLength]的字符,超過限制時,錯誤計數(shù)器和分配器(divider)將切換到[decoration.errorStyle]。
8、[textAlign], [autofocus], [obscureText], [autocorrect], [maxLengthEnforced], [scrollPadding], [maxLines], [maxLength],and [enableInteractiveSelection] 這些參數(shù)不能為空

名稱 類型 解釋
controller TextEditingController 控制正在編輯的文本。如果為null,則此小部件將創(chuàng)建自己的TextEditingController
focusNode focusNode 控制這個小部件是否有鍵盤焦點。如果是null,這個小部件將創(chuàng)建自己的FocusNode。
decoration InputDecoration 在文本字段周圍顯示的裝飾。默認情況下,在文本字段下繪制一條水平線,但可以其配置為顯示圖標icon、標簽label、提示文本hint text和錯誤文本error text。指定null以完全刪除裝飾(包括由裝飾引入的額外填充以節(jié)省標簽空間)。默認為InputDecoration()
keyboardType TextInputType 用于指定編輯文本的鍵盤類型。如果[maxLines]為1 則默認為[TextInputType.text],[否則]為 [TextInputType.multiline]。
textInputAction TextInputAction 用于鍵盤的操作按鈕類型。 如果keyboardType為TextInputType.multiline,則默認為TextInputAction.newline,否則為TextInputAction.done。
textCapitalization TextCapitalization 配置平臺鍵盤如何選擇大寫或小寫鍵盤。 僅支持文本鍵盤,其他鍵盤類型將忽略此配置。資本化是區(qū)域設置感知的。 默認為TextCapitalization.none。不能為空。
style TextStyle 用于正在編輯的文本的樣式。 此文本樣式也用作裝飾的基本樣式。 如果為null,則默認為當前主題的子標題文本樣式。
textAlign TextAlign 文本應如何水平對齊。 默認為TextAlign.start,不能為null。
autofocus bool 如果沒有別的內(nèi)容已經(jīng)獲得焦點,則該文本字段是否獲取焦點。如果為true,打開這個文本框立刻獲得焦點。否則,只有在用戶點擊文本字段后才會獲取焦點,顯示鍵盤。默認值為false,不能為空。
obscureText bool 是否隱藏正在編輯的文本(例如,用于密碼)。 當此參數(shù)設置為true時,文本字段中的所有字符都將替換為U + 2022 BULLET字符(?)。 默認為false,不能為空。
autocorrect bool 是否啟用自動更正。 默認為true,不能為空。
maxLines int 文本展開的最大行數(shù),必要時可換行。如果這是1(默認值),文本將不會換行,而是將水平滾動。如果這是null的,行數(shù)沒有限制。如果不是null,值必須大于零。
maxLength int 文本字段中允許的最大字符數(shù)(Unicode標量值)。如果設置,字段計數(shù)器將顯示在字段下方,顯示已輸入的字符數(shù)和允許的字數(shù)。輸入maxLength字符后,將忽略其他輸入,除非maxLengthEnforced設置為false。TextField使用LengthLimitingTextInputFormatter強制執(zhí)行長度,該值在提供的inputFormatters(如果有)之后計算。該值必須為null或大于零。如果設置為null(默認值),則允許的字符數(shù)沒有限制。空格字符(例如換行符,空格,制表符)包含在字符數(shù)中。如果maxLengthEnforced設置為false,則 可以輸入多個maxLength字符,但錯誤計數(shù)器和分隔符將切換到decoration.errorStyle超出限制時。
maxLengthEnforced bool 如果為真,則阻止字段允許超過maxLength字符。如果設置了maxLength, maxLengthEnforced表示是否執(zhí)行限制,或者僅在超過maxLength時提供字符計數(shù)器和警告。
onChanged ValueChanged<String> 當正在編輯的文本發(fā)生更改時調(diào)用
onEditingComplete VoidCallback 當用戶提交可編輯內(nèi)容時調(diào)用(例如,用戶按下鍵盤上的“完成”按鈕)。onEditingComplete的默認實現(xiàn)根據(jù)情況執(zhí)行兩種不同的行為:當按下完成動作時,例如“完成”、“go”、“發(fā)送”或“搜索”,用戶的內(nèi)容被提交給控制器(controller),然后將焦點放棄。當一個非完成動作被按下,比如"下一個"或"上一個"時,用戶的內(nèi)容被提交給控制器,但焦點不會被放棄,因為開發(fā)者可能會想立刻將焦點轉移到提交的另一個輸入組件上。
onSubmitted ValueChanged<String> 當用戶指示他們已完成編輯字段中的文本時調(diào)用
inputFormatters List<TextInputFormatter> 可選的輸入驗證和格式化覆蓋。當文本輸入發(fā)生變化時,格式化程序按照提供的順序運行。
enabled bool 如果為false, textfield將被“禁用”:它將忽略tap,其裝飾將以灰色呈現(xiàn)。如果非null這個屬性覆蓋了decoration'中Decoration.enabled的裝飾功能。
cursorWidth double 光標的厚度。 默認為2.0
cursorRadius Radius 光標的角應該是多圓的。 默認情況下,光標沒有半徑(Radius)。
cursorColor Color 繪制光標時使用的顏色。cursorColor當為null時,默認為主題。
keyboardAppearance Brightness 鍵盤的外觀。此設置僅適用于iOS設備。如果未設置,則默認為ThemeData.primaryColorBrightness的亮度。
scrollPadding EdgeInsets 當Textfield滾動到視圖中時,將填充配置到Scrollable周圍的邊緣。當此窗口小部件獲得焦點并且不完全可見時(例如,部分地從屏幕滾動或被鍵盤重疊),則它將通過滾動周圍的Scrollable(如果存在)來嘗試使其自身可見。此值控制在滾動后TextField將位于Scrollable邊緣的距離。默認為EdgeInserts.all(20.0)。
enableInteractiveSelection bool 如果為true,則長按此TextField將選擇文本并顯示剪切/復制/粘貼菜單,并且點擊將移動文本插入符號。 默認為True。 如果為false,則將禁用大多數(shù)用于選擇文本,復制和粘貼以及移動插入符號的輔助功能。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。