瞎扯
如題,文本輸入.沒(méi)啥好扯的.
Input
TextField
是最常用的文本輸入widget.
默認(rèn)情況下,TextField
有一個(gè)下劃線裝飾(decoration)棺牧。您可以通過(guò)提供給decoration
屬性設(shè)置一個(gè)InputDecoration
來(lái)添加一個(gè)標(biāo)簽巫糙、一個(gè)圖標(biāo)、提示文字和錯(cuò)誤文本颊乘。 要完全刪除裝飾(包括下劃線和為標(biāo)簽保留的空間)参淹,將decoration明確設(shè)置為空即可。
TextFormField
包裹一個(gè)TextField
并將其集成在Form
中乏悄。你要提供一個(gè)驗(yàn)證函數(shù)來(lái)檢查用戶的輸入是否滿足一定的約束(例如浙值,一個(gè)電話號(hào)碼)或當(dāng)你想將TextField
與其他FormField
集成時(shí),使用TextFormField
檩小。
獲取用戶輸入
有兩種獲取用戶輸入的主要方法::
- 處理
onChanged
回調(diào) - 提供一個(gè)
TextEditingController
.
onChanged
每當(dāng)用戶輸入時(shí)开呐,TextField會(huì)調(diào)用它的onChanged
回調(diào)。 您可以處理此回調(diào)以查看用戶輸入的內(nèi)容规求。例如筐付,如果您正在輸入搜索字段,則可能需要在用戶輸入時(shí)更新搜索結(jié)果阻肿。
TextEditingController
一個(gè)更強(qiáng)大(但更精細(xì))的方法是提供一個(gè)TextEditingController
作為TextField
的controller
屬性瓦戚。 在用戶輸入時(shí),controller的text
和selection
屬性不斷的更新丛塌。要在這些屬性更改時(shí)得到通知较解,請(qǐng)使用controller的addListener
方法監(jiān)聽(tīng)控制器 。 (如果你添加了一個(gè)監(jiān)聽(tīng)器赴邻,記得在你的State對(duì)象的dispose方法中刪除監(jiān)聽(tīng)器 )印衔。
該TextEditingController
還可以讓您控制TextField
的內(nèi)容。如果修改controller的text
或selection
的屬性乍楚,TextField
將更新当编,以顯示修改后的文本或選中區(qū)間。 例如徒溪,您可以使用此功能來(lái)實(shí)現(xiàn)推薦內(nèi)容的自動(dòng)補(bǔ)全忿偷。
new TextField(
controller: _controller, //控制器
decoration: new InputDecoration(
hintText: '請(qǐng)輸入',
),
),
交流群:493180098,這是個(gè)很少吹水,交流學(xué)習(xí)的群.
APP開(kāi)發(fā)維護(hù)咨詢?nèi)?: 492685472 ,承接APP迭代.開(kāi)發(fā)維護(hù).咨詢業(yè)務(wù),付費(fèi)快速解決問(wèn)題.