[Flutter] Navigator.push로 띄운 widget에서 InheritedWidget에 접근할 수 없는 문제

문제 상황 상위 위젯에서 추가한 InheritedWidget을 하위 widget에서 접근하지 못하는 문제 BuildContext.dependOnInheritedWidgetOfExactType이 null을 반환해서 property 및 method를 호출할 수 없음 예제 코드 문제를 재현하는 간단한 counter app HomeScreen 및 DetailScreen은 버튼을 눌러서 count 증가 HomeScreen과 DetailScreen은 count 값(state) 공유 Count 값을 하위 widget에 공유하기 위한 InheritedWidget 생성 class CounterProvider extends InheritedWidget { const CounterProvider({ super.key, required super.child, required this.counter, required this.incrementCounter, }); final int counter; // ✅ count 값 공유 final void Function() incrementCounter; // ✅ count action 공유 @override bool updateShouldNotify(covariant InheritedWidget oldWidget) => true; static CounterProvider?...

May 25, 2024 · 4 min

All About Date and Time

위도와 경도 위도(latitude) : 적도를 기준으로 북쪽 또는 남쪽으로 떨어진 위치 (도(°) 단위) 경도(longitude) : 본초 자오선을 기준으로 동쪽 또는 서쪽으로 떨어진 위치 (도(°) 단위) 180°E ~ 180°W (동경 180° ~ 서경 180°) 까지의 범위 안에 위치 경도 15°로 1시간의 시차가 생긴다. 자오선 자오선(Meridian) 또는 경선 북극점과 남극점을 최단 거리로 연결하는 세로선 동경(E, X E, X East) : 자오선의 동쪽 서경(W, Y W, Y West) : 자오선의 서쪽 동경과 서경은 180°까지 있고, 동서경 180°는 일치한다....

March 13, 2024 · 3 min

[iOS] iOS Hit Testing

Hit Testing Hit test는 사용자 event가 발생할 때 view 계층(hierarchy)에서 subview들을 탐색(traverse)하며 event를 처리할 view를 결정하는 과정이다. Root view부터 시작하여 subview들을 역방향으로 탐색하며, event 발생 위치(point)를 포함하는 view가 있다면 그 view의 subview들을 같은 방법으로 탐색해 나간다. ‘역방향’으로 탐색하는 이유는, 화면의 가장 앞에 위치한 view부터 탐색하기 위함이다. 여러 개의 view가 겹쳐있다면 사용자가 보게 되는 맨 앞의 view가 event를 가져가야 한다. 화면의 가장 앞에 있는 view는 다음과 같은 특징을 가진다. z-order index(depth)가 가장 크다....

February 6, 2022 · 4 min