티스토리 뷰
WidgetBinding.instance.addPostFrameCallback 이 호출되지 않는다.
낭초비 2023. 9. 14. 09:44블루투스 scan 중 에 새로운 device 가 discover 되었다는 event를 받으면 호출 하는 함수를 아래와 같이 정의 하였다.
///---------------------------------------------------------------------------
/// 스캔된 장비 수 업데이트 메서드
/// - bleCommonData.isScanListUpdated 에서는 새로운 장비가 scan 되었을 때만 event 발생
/// 하고 기존에 scan 된 장비가 꺼졌을 때에 대해서는 인지하지 못하므로 이 메서드를 실행하여 update
///---------------------------------------------------------------------------
void updateNumOfScannedDevice() {
WidgetsBinding.instance.addPostFrameCallback((_){
if (mounted) {
setState(() {
numOfScannedDevice = bleCommonData.scanDevices.length;
});
}
});
}
이 함수는 처음 initState 에서 bluetooth 모듈로부터 isScanListUpdated 를 listen 하다가 event가 발생하면 실행하도록 했는데, 실행이 안되고 있었다.
debugging 과정에서 updateNumOfScannedDevice() 메서드가 호출 되는 것 까지는 확인이 되었는데, WidgetBinding.instance.addPostFrameCallback 호출이 안되는 것이었다.
왜 안되지? 이유를 몰라서 구글링을 했더니, 해당 위젯에서 새 프레임을 그릴일이 없어서 addPostFrameCallback 을 호출할 일이 없기 때문일 것이라고 한다. 그래서 강제로 새 프레임을 그리도록 아래의 코드를 WidgetBinding.instance.addPostFrameCallback() 를 호출한 뒤에 추가해주면된다고 한다.
WidgetsBinding.instance!.ensureVisualUpdate();
참고 자료
1. https://stackoverflow.com/questions/69738183/flutter-addpostframecallback-callback-not-called
Flutter : addPostFrameCallback callback not called
I try to implement a redirection system. If I receive a notification (from Firebase messaging) when my application is in background, I store the sent route information (e.g: redirect = /medias/deta...
stackoverflow.com
[Flutter] addPostFrameCallback이 호출되지 않는다면? / GetX에서 onReady() 함수가 실행되지 않는다면?
💡 이 글에서 제시하는 해결책은 GetX를 쓰는 프로젝트에서 특정 화면에 대해 onReady() 함수가 실행되지 않을 때에도 적용할 수 있습니다.(이는 GetX의 onReady() 함수 또한 onInit() 안에서 addPostFrameCallb
velog.io
'Dart & Flutter > Error 해결 정리' 카테고리의 다른 글
Module was compiled with an incompatible version of Kotlin 에러 (0) | 2024.03.13 |
---|---|
TextField가 keyboard 에 가려지는 문제 (0) | 2023.10.12 |
TextFormField 에서 text 의 vertical alignment 가 안 맞는 문제 (0) | 2023.09.11 |
Firebase crashlytics 를 적용해보려는데.... (0) | 2023.05.04 |
ndk version disagree (0) | 2023.03.16 |
- Total
- Today
- Yesterday
- position
- BLE
- 디자인
- TextFormField
- error
- firebase
- addPostFrameCallback
- 인사이트
- 문제 해결
- UI
- UX
- 앱
- 앱 프로그래밍
- 앱개발
- 이미지
- DART
- Bluetooth
- 에러
- 크롬
- IOS
- plugin
- 한빛미디어
- Flutter
- SizedBox
- 플러터
- Syncfusion
- TextField
- hide
- 다트
- Chrome
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |