diff --git a/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart b/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart index 5250cef2..94e3d6bc 100644 --- a/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart +++ b/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart @@ -232,12 +232,13 @@ class _SmsVerifyPageState extends ConsumerState { } void _onCodeChanged(int index, String value) { - // 清除错误信息 - if (_errorMessage != null) { - setState(() { + // 每次输入都触发重建,以更新 showCursor 状态 + setState(() { + // 清除错误信息 + if (_errorMessage != null) { _errorMessage = null; - }); - } + } + }); if (value.isNotEmpty) { // 输入了字符,移动到下一个 @@ -377,7 +378,7 @@ class _SmsVerifyPageState extends ConsumerState { keyboardType: TextInputType.number, textAlign: TextAlign.center, maxLength: 1, - showCursor: false, // 隐藏光标,避免光标影响数字显示位置 + showCursor: _controllers[index].text.isEmpty, // 空时显示光标,有内容时隐藏避免遮挡数字 inputFormatters: [ FilteringTextInputFormatter.digitsOnly, ],