fix: 优化验证码输入框光标显示逻辑
- 空输入框时显示光标,让用户知道当前输入位置 - 输入数字后隐藏光标,避免光标占用空间导致数字显示不全 - 每次输入触发setState确保showCursor状态正确更新 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
c1b8a441b6
commit
979780dd7e
|
|
@ -232,12 +232,13 @@ class _SmsVerifyPageState extends ConsumerState<SmsVerifyPage> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onCodeChanged(int index, String value) {
|
void _onCodeChanged(int index, String value) {
|
||||||
// 清除错误信息
|
// 每次输入都触发重建,以更新 showCursor 状态
|
||||||
if (_errorMessage != null) {
|
setState(() {
|
||||||
setState(() {
|
// 清除错误信息
|
||||||
|
if (_errorMessage != null) {
|
||||||
_errorMessage = null;
|
_errorMessage = null;
|
||||||
});
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
if (value.isNotEmpty) {
|
if (value.isNotEmpty) {
|
||||||
// 输入了字符,移动到下一个
|
// 输入了字符,移动到下一个
|
||||||
|
|
@ -377,7 +378,7 @@ class _SmsVerifyPageState extends ConsumerState<SmsVerifyPage> {
|
||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
maxLength: 1,
|
maxLength: 1,
|
||||||
showCursor: false, // 隐藏光标,避免光标影响数字显示位置
|
showCursor: _controllers[index].text.isEmpty, // 空时显示光标,有内容时隐藏避免遮挡数字
|
||||||
inputFormatters: [
|
inputFormatters: [
|
||||||
FilteringTextInputFormatter.digitsOnly,
|
FilteringTextInputFormatter.digitsOnly,
|
||||||
],
|
],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue