Flutter Widget之TextField使用解析

TextField組件在我們?nèi)粘i_(kāi)發(fā)中很常用债鸡,下面就來(lái)總結(jié)一下它的用法诱鞠。

從 TextField 中檢索信息

1.第一種方法是使用 onChanged 方法并將當(dāng)前值存儲(chǔ)在一個(gè)簡(jiǎn)單的變量中肢础。

String value = "";
TextField(
  onChanged: (text) {
    value = text;
  },
)

2.第二種方法是使用 TextEditingController喂分【奂伲控制器附加到 TextField 上块蚌,讓我們監(jiān)聽(tīng)和控制 TextField 的文本。

TextEditingController controller = TextEditingController();
TextField(
  controller: controller,
)

print(controller.text);//輸出當(dāng)前TextField的值

TextField 的其他回調(diào)

///這些是在用戶單擊 iOS 上的“完成”按鈕時(shí)調(diào)用的回調(diào)
onEditingComplete: () {},
onSubmitted: (value) {},

在 TextFields 中使用焦點(diǎn)

1.使用自動(dòng)對(duì)焦

TextField(
  autofocus: true,
)

2.改變自定義焦點(diǎn)

1_vMJw-_qx5DjX7Q3NZ5TTbg.gif
///點(diǎn)擊RaisedButton時(shí)可以切換下一個(gè)TextField
FocusNode nodeOne = FocusNode();
FocusNode nodeTwo = FocusNode();

TextField(
  focusNode: nodeOne,
),
TextField(
  focusNode: nodeTwo,
),
RaisedButton(
  onPressed: () {
    FocusScope.of(context).requestFocus(nodeTwo);
  },
  child: Text("Next Field"),
)

更改 TextFields 的鍵盤(pán)屬性

1.鍵盤(pán)類型

TextInputType.text (普通完整鍵盤(pán))
TextInputType.number (數(shù)字鍵盤(pán))
TextInputType.emailAddress  (帶有“@”的普通鍵盤(pán))
TextInputType.datetime (帶有“/”和“ : ”的數(shù)字鍵盤(pán))
TextInputType.numberWithOptions  (帶有啟用簽名和十進(jìn)制模式選項(xiàng)的數(shù)字鍵盤(pán))
TextInputType.multiline (優(yōu)化多行信息)

TextField(
  keyboardType: TextInputType.number,
)

2.更改鍵盤(pán)本身的操作按鈕

1_YWTJ0wLBtaBJm8XODCG-6g.png
1_Lc7TmV5BlSAdE7a9PKeCYw.png
///這會(huì)導(dǎo)致“完成”按鈕被“繼續(xù)”按鈕取代
TextField(
  textInputAction: TextInputAction.continueAction,
)

///這會(huì)導(dǎo)致“完成”按鈕被“發(fā)送”按鈕取代
TextField(
  textInputAction: TextInputAction.send,
)

3.自動(dòng)更正

TextField(
  autocorrect: false,
)

4.文本大寫(xiě)

2.png
1.png
3.png
TextCapitalization.sentences ///每個(gè)句子的首字母都被大寫(xiě)
TextCapitalization.characters ///句子中的所有字符都大寫(xiě)
TextCapitalization.words ///每個(gè)單詞的首字母大寫(xiě)
TextField(
  textCapitalization: TextCapitalization.sentences,
)

文本樣式膘格、對(duì)齊方式和光標(biāo)選項(xiàng)

1.文本字段中的文本對(duì)齊方式

4.png
///這將導(dǎo)致光標(biāo)和文本在 TextField 中間開(kāi)始
TextField(
  textAlign: TextAlign.center,
)

2.在 TextField 中設(shè)置文本的樣式

///style 屬性用來(lái)更改 TextField 中文本的外觀峭范、顏色、字體大小等瘪贱。
TextField(
  style: TextStyle(color: Colors.red, fontWeight: FontWeight.w300),
)

3.更改 TextField 中的光標(biāo)

5.png
///更改光標(biāo)顏色纱控,寬度和角的半徑辆毡,這里制作了一個(gè)紅色的圓形光標(biāo)
TextField(
  cursorColor: Colors.red,
  cursorRadius: Radius.circular(16.0),
  cursorWidth: 16.0,
)

控制 TextField 中的大小和最大長(zhǎng)度

1.控制最大字符數(shù)

TextField(
  maxLength: 4,
)

1.控制最大行數(shù)

TextField(
  maxLines: 3,
)

模糊文本

6.png
TextField(
  obscureText: true,
)

裝飾 TextField

1.使用提示

TextField(
  decoration: InputDecoration(
    hintText: "Demo Text",
    hintStyle: TextStyle(fontWeight: FontWeight.w300, color: Colors.red)
  ),
)

2.增加圖標(biāo)

7.png
TextField(
  decoration: InputDecoration(
    prefixIcon: Icon(Icons.print)
  ),
)
1_rLwdJJEouFU1CUARs17mmw.png
TextField(
  decoration: InputDecoration(
    icon: Icon(Icons.print)
  ),
)
8.png
TextField(
  decoration: InputDecoration(
    prefix: CircularProgressIndicator(),
  ),
)

3.去除光標(biāo)

TextField(
  decoration: InputDecoration.collapsed(hintText: "")
)

4.增加邊框

10.png
TextField(
  decoration: InputDecoration(
    border: OutlineInputBorder()
  )
)

5.持久消息

9.png
TextField(
  decoration: InputDecoration(
    helperText: "Hello"
  ),
),
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市甜害,隨后出現(xiàn)的幾起案子舶掖,更是在濱河造成了極大的恐慌,老刑警劉巖尔店,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眨攘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡嚣州,警方通過(guò)查閱死者的電腦和手機(jī)鲫售,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)该肴,“玉大人情竹,你說(shuō)我怎么就攤上這事≡群澹” “怎么了秦效?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)涎嚼。 經(jīng)常有香客問(wèn)我阱州,道長(zhǎng),這世上最難降的妖魔是什么铸抑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任贡耽,我火速辦了婚禮衷模,結(jié)果婚禮上鹊汛,老公的妹妹穿的比我還像新娘。我一直安慰自己阱冶,他們只是感情好刁憋,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著木蹬,像睡著了一般至耻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镊叁,一...
    開(kāi)封第一講書(shū)人閱讀 50,096評(píng)論 1 291
  • 那天尘颓,我揣著相機(jī)與錄音,去河邊找鬼晦譬。 笑死疤苹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的敛腌。 我是一名探鬼主播卧土,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼惫皱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了尤莺?” 一聲冷哼從身側(cè)響起旅敷,我...
    開(kāi)封第一講書(shū)人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颤霎,沒(méi)想到半個(gè)月后媳谁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捷绑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年韩脑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粹污。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡段多,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出壮吩,到底是詐尸還是另有隱情进苍,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布鸭叙,位于F島的核電站觉啊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沈贝。R本人自食惡果不足惜杠人,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宋下。 院中可真熱鬧嗡善,春花似錦、人聲如沸学歧。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)枝笨。三九已至袁铐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間横浑,已是汗流浹背剔桨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留徙融,地道東北人洒缀。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像张咳,于是被迫代替她去往敵國(guó)和親帝洪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子似舵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351