아래 코드를 구글 맵에 넣으면 동작 gestureRecognizers: { Factory( () => EagerGestureRecognizer() ) }, 테스트 코드 참고 How to avoid scrolling ListView when scrolling in map (MapBox) within ListView When I swipe my map sometimes it is leading to scroll of ListView, so I would like to discover optimal solution for this situation. I am using flutter_map package and it has no gestureRecognizers stackoverflow.com
과정 스킵 Navigator를 여러개를 쓰고있는 상태이다. 하위 Navigator에서 showDialog를 이용해 AlertDialog를 띄우는 상황에 action을 이용해 dialog와 dialog를 띄운 페이지를 pop을 하기위해 popUntil을 이용했다. (참고로 popUntil로 이동할 route의 이름은 route엔 존재하지 않음) 그리고 테스트를 하는데 화면이 갑자기 검게 변했다. 이 상태에서 핫 리로드를 수행해보면 아래와 같은 에러가 발생한다. 모든 화면이 pop되어 없는 상태여서 발생한 에러이다. context를 통해 가까운 Navigator를 찾아 pop을 한다면 발생하지 않을 에러인데 발생해 이해할 수 없었다. 하위 Navigator의 initialRoute가 루트와 달라 아래 코드..
MultipartRequest는 일반적인 get, post 함수로 통신하면 결과로 Response타입의 데이터를 주는 것과 달리 결과로 StreamedResponse타입의 데이터를 뱉는다. 이를 Response클래스 내의 fromStream함수를 이용해 StreamedResponse를 Response로 변경하면 get, post 등의 결과처럼 처리 가능하다. // request -> MultipartRequest request; final streamedResponse = await request.send(); final result = await http.Response.fromStream(streamedResponse); 참고 How to get response body with request.sen..
Container위젯의 decoration에서 BoxDecoration을 통해 원하는대로 꾸민 뒤 Row나 Column위젯을 child로 넣으면 된다. Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), color: Colors.lightBlue, ), child: ... ) Row나 Column의 자식 위젯의 constraints 문제로 인해 RenderBox was not laid out에러가 발생할 경우 Container에 width와 height를 지정해주거나 Expanded와 같은 크기를 지정해주는 위젯으로 감싸 해결할 수 있다. 전체 코드 참고 How to make the background of Text..
Navigator클래스 내의 static인 popUntil과 NavigatorState클래스의 멤버 함수 두 개가 있다. 그 중 static인 함수는 첫번째 매개변수의 BuildContext를 통해 NavigatorState를 찾은 뒤에 NavigatorState클래스의 popUntil을 호출하도록 되어있다. 콜백 함수의 반환 값이 true일 때 pop을 그만하도록 구현되어있다. 예시 내가 유용하게 쓴 곳은 BottomNavigationBar를 두고 각 탭별로 NavigatorState를 가지고 있게 한 상황이였다. 게시판이라는 탭이 있으면 게시판에서 어떤 글을 보고 있을 때 같은 탭인 게시판을 누르면 게시판 탭의 메인 화면으로 이동하도록 했고 이미 메인 탭일 땐 아무런일도 일어나지 않도록 구현했었다. ..
기본text는 body2(bodyText2) 란 이름의 text style로 적용되어 있다. 이 body2의 TextStyle을 변경하면 모든 text가 공통적으로 변경된다. 참고 Use themes to share colors and font styles How to share colors and font styles throughout an app using Themes. docs.flutter.dev TextTheme class - material library - Dart API Material design text theme. Definitions for the various typographical styles found in Material Design (e.g., button, captio..
Column위젯의 mainAxisSize의 값으로 MainAxisSize.min을 줘서 해결 참고 Flutter - Auto size AlertDialog to fit list content I need to load list cities dynamically from rest webservice and let user choice one city from alert dialog. My code: createDialog() { fetchCities().then((response) { showDialog( ... stackoverflow.com
AlertDialog 창 외부 화면을 눌러도 안꺼지게 막기 showDialog의 barrierDismissible 값을 false로 설정한다. 뒤로가기 버튼 막기 show dialog의 builder의 최상위 위젯을 뒤로가기 버튼에 대한 콜백을 설정할 수 있는 WillPopScope위젯으로 두고 onWillPop에 () async => false 콜백을 설정해 아무일도 일어나지 않게 함 둘 다 적용하면 아래와 같다. showDialog( context: context, barrierDismissible: false, builder: (context) { return WillPopScope( onWillPop: () async => false, child: AlertDialog( ... ), ); } ) ..
android android/app/src 내의 debug, main, profile폴더 내의 AndroidManifest.xml파일 내 상단에 있는 package의 값을 패키지 이름으로 변경 android/app/src 내의 build.gradle파일에서 applicationId도 위에 바꾼 패키지 이름대로 변경 applicationId "change.this.name" ios ios/Runner 내의 Info.plist파일에서 CFBundleIdentifier란 값을 가진 key 태그 아래의 string태그의 값을 원하는 패키지 이름으로 변경 CFBundleIdentifier change.this.name 만약 ${PRODUCT_BUNDLE_IDENTIFIER} 란 이름으로 되어있다면 ios/Runn..
문제점 내가 발생한 문제는 두가지이다. 문제 1 firebase플러그인에 대한 내용이 포함된 에러 및 버전을 자동으로 9.0으로 맞춘다는 메시지 출력 [!] Automatically assigning platform iOS with version 9.0 on target Runner because no platform was specified. Please specify a platform for this target in your Podfile. 원인 : firebase를 사용하기위한 ios minimum버전을 맞추지않아 발생 문제 2 LoadError -dlopen~~~ 에러 발생 원인 : Apple Silicon(M1)에 맞지않는 cocoapods 문제로 인해 발생 이외에 다른 패키지의 버전이 맞지..