問題場景: 在登錄界面獲取驗證碼短信時點擊 鍵盤上方點擊快捷輸入短信驗證碼 會輸入兩次驗證碼.
解決方案1:
限制輸入框輸入的長度 隘冲,短信驗證幾位就限制成幾位.
快捷有效.但如果后期更換短信模板位數(shù)變化會有影響.
maxLength:[驗證碼位數(shù)]
解決方案2:
判斷重復(fù)的驗證碼
定義 TextEditingController
TextEditingController _controller = TextEditingController();
TextField(
controller: _controller,
onChanged: (value) {
if ('$_authCode$_authCode' == value) { //鍵入重復(fù)的情況
setState(() {
_controller.value = TextEditingValue(
text: _authCode,//不賦值新的 用舊的;
selection: TextSelection.fromPosition(
TextPosition(
affinity: TextAffinity.downstream,
offset: _authCode.length),
),// 此處是將光標(biāo)移動到最后,
);
});
} else {
//第一次輸入驗證碼
setState(() {
_controller.value = TextEditingValue(
text: value,
selection: TextSelection.fromPosition(
TextPosition(
affinity: TextAffinity.downstream,
offset: value.length),
),// 此處是將光標(biāo)移動到最后,
);
_authCode = value;
});
}
},
),
造成原因: ??? 網(wǎng)上說出發(fā)了原生 UITextFieldTextDidChangeNotification 的問題導(dǎo)致的.