TextFiled 키보드, rebuild 이슈 - review_write_page.dart
61
작성한 질문수 12
질문드립니다. :)
review_write_page.dart 에서
/////
class _ReviewBox extends StatefulWidget {
final String? initReview;
const _ReviewBox({super.key, this.initReview});
@override
State<_ReviewBox> createState() => _ReviewBoxState();
}
class _ReviewBoxState extends State<_ReviewBox> {
TextEditingController editingController = TextEditingController();
@override
void didUpdateWidget(covariant _ReviewBox oldWidget) {
super.didUpdateWidget(oldWidget);
editingController.text = widget.initReview ?? '';
}
@override
Widget build(BuildContext context) {
return TextField(
maxLines: null,
controller: editingController,
decoration: const InputDecoration(
border: InputBorder.none,
hintText: "리뷰를 입력해주세요.",
contentPadding: EdgeInsets.symmetric(horizontal: 25),
hintStyle: TextStyle(color: Color(0xff585858)),
),
onChanged: context.read<ReviewWriteCubit>().changeReview,
style: const TextStyle(color: Colors.white),
);
}
}리뷰 작성 시,
iOS 실기기에서 TextFiled에 텍스트를 입력을 하면 키보드가 내려가지 않습니다.
이를 해결하기 위해서 FocusScope.of(context).unfocus();를 하면 키보드가 내려간다고 해서 Scafford 쪽에 GestureDetector onTap에 해당 함수를 호출하도록 했을 때는 TextFiled에 입력 텍스트가 없어지면서 초기화가 됩니다.
Android 실기기에서 TextField에 텍스트를 입력하고 키보드를 내릴 수가 있어서 내리면 TextField에 입력한 텍스트가 사라지면서 초기화됩니다.
어떻게 수정을 해야할까요? 🙂
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 류지영님께서 겪고 계신 문제는 Flutter에서 키보드가 숨겨질 때 TextField의 값을 유지하는 것과 관련된 문제로 보입니다. 이와 관련된 문제는 Flutter 애플리케이션에서 State 관리와 위젯의 생명주기를 올바르게 이해하는 것이 중요합니다.
관련해서 유사한 문제를 해결한 게시물이 있습니다. 리뷰 작성화면에서 질문이 있습니다 질문에서 소개된 방법은 didUpdateWidget 메서드에 수정된 조건을 사용하여 이 문제를 해결하는 것입니다. ‘didUpdateWidget’에서 조건문을 변경하여 잘못된 초기화 문제를 해결할 수 있습니다.
문제 발생 시 ‘editingController.text’의 불필요한 초기화를 방지하기 위해 다음과 같은 방식으로 코드를 수정해보세요:
@override
void didUpdateWidget(covariant _ReviewBox oldWidget) {
super.didUpdateWidget(oldWidget);
if (oldWidget.initReview != widget.initReview) {
editingController.text = widget.initReview ?? '';
}
}
또한, FocusScope.of(context).unfocus();를 사용해 키보드를 숨기는 새로운 GestureDetector를 추가하는 대신 TextField의 onChanged 메서드를 활용해 상태를 업데이트 하는 것이 유용할 수 있습니다.
문제를 해결하는데 어려움을 겪으신다면 추가 정보를 제공해주시면 더 자세한 도움을 드릴 수 있을 것 같습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Figma 디자인 링크는 어디서 받을 수 있을까요? ☺️
0
76
1
오류..
0
149
2
혹시 웹에서 디버깅하시는분들은
0
441
1
비동기 처리방식
0
238
3
애뮬레이터 동작안됨과 xcode 실행안됨
0
196
1
기능별로 정리가 되지않아요
0
194
2
임포트 자동생성
0
229
4
클래스 이름 동시 변경
0
181
2
단축키옵션
0
200
2
의존성 세팅이 끝나면
0
114
1
플러터 설치
0
169
2
goRouter
0
158
2
appBar 텍스트 컬러 적용이 안돼요!
0
171
1
모델 객체에 대해
0
213
1
네이버api프로젝트세팅부분에서
0
291
2
doc id와 uid
0
455
2
실제 폰에서 테스트 시 리뷰 작성 버튼 위치
0
251
1
샘플 소스 전체 다운받아볼 수 있을까요?
0
343
1
애플 로그인 위해 애플 개발자 인증센터는 Developer 프로그램 가입해야 하나요?
0
379
1
GoogleService-Info.plist > REVERSED_CLIENT_ID 안보입니다.
0
1608
2
즐겨찾기 기능 질문 요청드립니다..
1
486
1
리뷰작성 별점 문의
0
336
1
플러터 바탕화면 빠진후 앱 진행시
1
852
6
구글 로그인 관련 질문합니다.
0
235
1





