일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 소울칼리버6
- 좋은글필사하기
- 명심보감
- 벤자민플랭클린
- 장자명언
- jetpack compose
- 명언모음
- Freesound
- 1인개발자
- Android
- androidx
- ASMR
- recyclerview
- FSM
- 이모지메모
- Flutter
- Firebase
- kotlin
- DART
- 코틀린
- 공자명언
- 오픈소스
- Streaming
- 공부집중
- bash
- 이모지
- Coroutine
- Linux
- 넷플릭스
- 파이썬
Archives
- Today
- Total
Vintage appMaker의 Tech Blog
[Flutter] push한 이전화면에서 build가 예상치 못하게 발생할 시 본문
Source code or Tip/Flutter & Dart
[Flutter] push한 이전화면에서 build가 예상치 못하게 발생할 시
VintageappMaker 2023. 2. 28. 09:55Navigator.of(context).push()를 이용해 화면을 이동한 상태에서 TextField에서 키보드의 전환이 자주 일어나게 될 경우, 이전화면에서 build가 호출되는 상황이 발생될 수 있다. 이럴경우, 이전화면에서는 build 함수에서 다음과 같은 코드로 "자신이 화면의 권한을 가지고 있는 지 채크"하여 화면을 처리할 수 있다.
이런 상황에서 문제가 발생하는 가장 큰 이유는
build 환경에서 서버와 통신을 하는 코드를 많이 사용하기 때문이다.
var route = ModalRoute.of(context);
if (route != null) {
print("route.settings.name = ${route.settings.name}, route = ${route}");
print("route.canPop = ${route.canPop}, isActive = ${route.isActive} , isCurrent = ${route.isCurrent} , isBlank = ${route.isBlank}");
}
if (ModalRoute.of(context)?.isCurrent ?? false) {
print("isCurrent true");
} else {
return Container(); // 아무것도 하지않음.
}
'Source code or Tip > Flutter & Dart' 카테고리의 다른 글
Flutter Timer로 스프레쉬 화면에서 메인으로 이동 - pushReplacement (0) | 2023.03.09 |
---|---|
[Flutter] Game engine- Flame 링크 (0) | 2023.03.04 |
[Flutter] chatGPT를 이용한 예제 (0) | 2023.01.22 |
[Flutter] 줄맞춤이 필요할 때, TextBaseline, Baseline widget (0) | 2022.12.27 |
[Flutter] scroll시 AppBar 투명 (0) | 2022.12.23 |
Comments