버튼을 클릭하면, 15초 후에 사라지는 dialog를 생성하고 싶었다. 그래서 dialog의 initState()에 Timer.periodic 을 실행하도록 하고, 이 타이머에서 15초가 되면 callback하는 함수에서 창을 닫는 (아래 코드처럼)명령을 주었다. 그랬더니 context 빨간 줄이 생기면서, initState에서 context를 사용할 수 없다는 설명이 떴다. 'initState context'를 검색해보니 context는 initState 이후에 사용할 수 있다고 한다. 그래서 해결 방법을 보니 아래 링크처럼 Future.delayed를 사용하면 된다고 한다. 그래서 따라 해보았다. https://stackoverflow.com/questions/49457717/flutter-get-c..
Sql DB에 자료를 저장하려면 아래와 같은 타입들이 가능하다. (자료링크) 그런데 저장해야할 자료 type중에 array나 list가 있다면? 그 data를 db에 저장 가능한 타입으로 변환해서 저장을 해야한다. 보통은 String으로 저장하는게 편하다. string에 다양한 메소드들이 이미 구현 되어있어서 다른 타입에서 string으로 변환하거나 string에 포함되어있는 separator를 기준으로 내용들을 array으로 변환하기 쉽기 때문이다. 아래의 예는 List 형태의 데이터를 sql DB에 저장할 수 있도록 string으로 변환하는 코드(dart언어)와 , DB의 string 데이터(list을 string으로 만들어 저장해두었던..)를 다시 List 로 변환하는 코드이다. static Str..
컴파일을 하고, VS cdoe에서 Widget Instpector에서 select widget mode를 이용해서 특정 위젯을 터치하면 아래와 같은 창이 열리면서 에러가 발생했다. errors_patch.dart 파일이 열리면서 에러 위치를 표시하는데[ 아래 사진과 같았다. 딱히 message가 없다보니 어디가 문제인지 알 수가 없었다. 문제가 발생하는 View의 의심이 가는 위젯을 하나하나 주석처리하면서 찾아보니, 어떤 위젯이 Flexible 안에서 또 flexible 위젯을 child로 받고 있었으며 이때문에 위와 같은 문제가 발생한 것이었다. Flexible 또는 Expandable은 Row나 Column과 같은 위젯 하위에서만 사용해야 한다. 한편, 저렇게 error가 떴을 때 이 error을 타..
The current elements of this iterable modified by [toElement]. 에러 메세지를 이해를 못하겠다. iterable의 현재 요소가 [toElement]에 의해서 수정되었다..??? 뭔말이지? [toElement]가 뭐지? 빠른 수정 정보를 보면 .을 ?.으로 수정하라고 한다. Null safety와 관련된 에러인것 같다. 아래처럼 클래스 변수(필드) 선언에서 ?를 달아놓았떤 것에 대해서 map을 명령했떠니 이런 에러가 떴던 것이다. 해결 방법은 변수 선언시에 null이 가능한 변수라면 ? 대신에 이 변수의 값을 사용할 때(나의 경우 map메소드 호출), null이 아니라는 걸 확인 시켜주면 된다. if 문으로 null아니라는걸 상위에 넣어주던가, 변수명 뒤에 ..
Error Message A RenderObject does not have any constraints before it has been laid out. VS code를 이용해서 코딩을 하는데, 갑자기 원인을 찾을 수 없는 에러가 발생했다. 앱이 돌아가는데는 문제가 전혀 없이 잘 돌아가는데~! widget inspector에서 위젯 트리에 있는 항목을 선택하거나, Select Widget Mode를 선택하여 현재 동작중인 화면에서 하나의 위젯을 터치하면 이 에러가 떴다. 오늘 수정한 코드 중에 잘못된게 있나 싶어서 수정한 항목의 상위,,,또 그 상위를 주석 처리하면서 실행시켜보아도 위에서 얘기한 행동을 할 경우 같은 에러가 떴다. 구글링을 해봤더니, https://stackoverflow.com/..
Row 위젯에 2개의 child 위젯을 넣고 mainAxisAlignment에 원하는 property를 입력하였는데 적용이 되지 않는다. 그렇다고 린트 에러나 컴파일 에러도 없다.....그래서 이유를 알 수가 없다보니 어떻게 해결해야하나 인터넷을 찾아봐야했다. flutter mainaxisalignment not working 구글에서 위와 같이 검색한 답변에서, 정렬하고자하는 Column 이나 Row 의 내부 위젯을 Expanded로 감싸 주면 해결된다는 글이 있다. 하지만 Expanded는 다른 children과의 영역 비율 조정을 할 수 없으므로(flex=1로 고정된 위젯이므로) Flexible을 감싸주고 원하는 비율을 flex 프로퍼티에 입력하였더니 해결되었다.
Getx 그 중에서도 Obs, Obx 사용법에 대해서 정리 참고자료: Getx의 statemanagement 에 대한 문서 https://github.com/jonataslaw/getx/blob/master/documentation/en_US/state_management.md GitHub - jonataslaw/getx: Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies eas Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Ge..
Null safty가 적용되고 나서, class에서 선언된 변수의 type이 late가 아닐 경우, 해당 변수를 read하려고 할 때 아직 initialized가 되어있지 않으면 error (complie-time)가 발생한다. [해결 방법] constructor 파라미터로 전달되는 것이라면 class에 초기화 하려는 변수명과 같게 해주어 constructor의 파라미터 필드에서 this.을 이용해서 바로 입력한다. 또는 파라미터로 전달되는 값이 직접 클래스의 변수에 입력할 수 없고, 프로세싱을 필요로 할 경우, initializer list에서 처리후에 클래스 변수에 입력할 수 있다. 클래스 바디에서 변수에 값을 할당하는 것은 초기화가 아니다~!
- Total
- Today
- Yesterday
- error
- firebase
- 크롬
- 디자인
- addPostFrameCallback
- DART
- plugin
- 이미지
- Syncfusion
- 앱개발
- UX
- 앱
- hide
- Chrome
- 문제 해결
- position
- 플러터
- UI
- TextFormField
- BLE
- SizedBox
- Flutter
- Bluetooth
- TextField
- IOS
- 다트
- 에러
- 앱 프로그래밍
- 인사이트
- 한빛미디어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |