Flutter8 [트러블슈팅] TextFormField 의 vaildator 가 실행되지 않았던 이유...(feat. ListView) 회원가입 페이지를 만드는 데 모든 입력을 TextFormField 로 두고 Form 으로 감싸서 유효성 검사를 하고 있었다.아이디부터 비밀번호, 이름 등등 모든 필드를 만들고 하나하나씩 체크하는 과정에서 검사가 잘 되는 것을 확인하고 회원가입 버튼을 누르는 순간... vaildator가 일부만 작동을 한다. 이유가 뭘까 제미나이랑 열심히 토론을 했다. AutovalidateMode 모드를 onUserInteraction 로 두고 사용자 interaction 이 없어서 그런가? 싶어서 disable 로 바꾸고키보드 타입도 바꾸고 아무튼... 열심히 바꿨다.해결이 안돼서 로직 변경을 생각하고 있었던 찰나 나의 구원자 stackoverflow가 답을 알려줬다. 이유내 위젯 트리를 먼저 설명하자면 ListVie.. 2025. 8. 16. [flutter] 위젯이 재빌드되는 횟수 파악하기 vscode 에서 cmd+shift+p 로 커맨드 팔래트 열어서 Open Devtools Performance Page 를 열어준다. 이 때 flutter 는 실행되고 있는 상태여야만 아래와 같은 페이지가 뜨니까 참고하기를! Open DevTools Performance Page 를 클릭하면 Performace 탭이 뜬다. Rebuild Stats 시트에서 한 화면의 전체 위젯들의 상황을 확인할 수 있다. Track widget build counts 박스를 표시하면 위젯들을 트래킹할 수 있고 Overall 이 화면이 바뀔 때 마다 재빌드되는 횟수를 실시간으로 확인할 수 있다. Text 위젯같은 경우 상수(const) 로 선언하면 성능 향상을 할 수 있으므로 적재적소에 const 선언을 두어 좀 더 빠.. 2024. 12. 23. [flutter] 페이지 뒤로가기할 때 새로고침 하기 A 페이지에서 B 페이지를 갔다가 뒤로가기 버튼을 눌렀을 때 A 페이지 데이터가 다시 로딩되게 하는 것이 목적Navigator.push( context, MaterialPageRoute( builder: (context) { return B(); } ),).then((value) => setState(){}); // 뒤로갈 때 새로고침 push 이후 뒤로갈 때 then 함수 안에 메서드가 실행된다. 2024. 12. 17. [flutter] BottomSheet 에 SafeArea 지정하는 방법 Scaffold 의 BottomSheet 는 SafeArea 가 먹지 않는다. 따라서 화면의 bottom padding 값을 구해서 직접 padding 값을 지정해야한다. Widget build(BuildContext context) { // bottom padding 값 final bottomPaddingSize = MediaQuery.paddingOf(context).bottom; return Scaffold( appBar: ... body: ... bottomSheet: Container( padding: EdgeInsets.only( top: 10, left: 20, right: 20, // padding + to.. 2024. 12. 12. 이전 1 2 다음