main() 에서 아래의 코드를 추가하면 시스템 UI 인 status bar(top) 와 navigation bar( bottom) 이 숨겨진 채로 Full screen에 대해서 앱의 UI 가 표시된다. SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []); 그런데 앱 실행중에 status bar, navigation bar 가 생성될 수 있는 제스쳐를 취하게 되면 숨겨두었던 system UI 가 나타나면서 UI 가 overflow 될 수 있다. 이를 감지해서 다시 system UI 를 숨겨 두기 위한 코드도 추가해 두었었다. system UI 를 감지하고 2초 후에 다시 원래 상태로 되돌리는 명령이다. SystemChrome.se..
버튼을 누르면 생성되는 팝업창의 위치를 버튼과 연관 되게 만들고 싶을 때, 버튼을 눌렀을 때 RenderBox 로 해당 버튼의 rending 관련 정보를 가져온뒤 offset 값을 화면애 대한 절대값으로 변환하여 이값을 기반하여 생성될 popup 창의 위치를 결정하는 파라미터에 넣어주면 된다. onPressed: (){ final RenderBox renderBox = context.findRenderObject() as RenderBox; final offset = renderBox.localToGlobal(Offset.zero); final left = // offset.dx 를 활용하여 popup 창의 왼쪽위 모서리 x좌표 값 계산하여 입력 final top = // offset.dy 를 활용하여 ..
TextFiled가 포커싱 되었을 때 생성되는 keyboard에 의해 가려진다면, TextField를 보이는(visible) 영역으로 가져오면(스크롤하면) 된다. 그러기 위해서는 우선 TextFiled가 scroll 가능한 widget에 쌓여져 있어야 한다. 보통 SingleChildScorllView를 이용해서 감싸고 child 에는 Column 을 이용해서, 표시하고자 하는 위젯들을 나열한다. 이 중에 TextForm filed 가 있을 것이다. 이제 keyboard가 생성되어었을때 스크롤을 얼마나 해야하는지 알아와야 한다. soft keyboard 는 system UI 이다. System UI에 의해 가려지는 크기를 받아오는 코드는 아래와 같다. MediaQuery.of(context).viewIn..
블루투스 scan 중 에 새로운 device 가 discover 되었다는 event를 받으면 호출 하는 함수를 아래와 같이 정의 하였다. ///--------------------------------------------------------------------------- /// 스캔된 장비 수 업데이트 메서드 /// - bleCommonData.isScanListUpdated 에서는 새로운 장비가 scan 되었을 때만 event 발생 /// 하고 기존에 scan 된 장비가 꺼졌을 때에 대해서는 인지하지 못하므로 이 메서드를 실행하여 update ///--------------------------------------------------------------------------- void up..
Text를 입력 받기 위해 TextFromField를 사용했는데, filed 내부에 표시되는 text 의 vertical alignment가 자꾸 안맞았다. textAlignVertical: TextAlignVertical.bottom, 를 입력해도 변화가 없었고, decoration: const InputDecoration( contentPadding: EdgeInsets.zero, ), 을 건드려봐도 계속 text가 아랫쪽, 혹은 설정한 box 보다 아랫쪽에 표시되었다. 이 문제를 발생시키는 원인은 text 를 입력할때 아랫쪽에 생기는 밑줄을 없애기 위해 입력한 코드 때문인것을 찾았는데, 이렇게 밑줄을 삭제하면 안되나 보다. decoration: const InputDecoration( border:..
현재 만들고 있는 앱의 디자인이 Bottom Navigation Bar (system UI) 와 어울리지 않아서 숨겨 두었다. main 함수에 아래와 같이 추가하면 숨겨진다 문제는 이 엃게 숨겨진 bottom navigation bar 가 영원히 숨겨지는게 아니란 것이다. 사용자가 터치스크린의 bottom edge에서 위쪽으로 swipe하면 다시 나타난다. 그리고 이로 인해 bottom 에 overflow가 발생한다. 이 문제를 해결하기 위해 구글링을 해보았다. 나와 같은 문제를 겪은 사람들이 몇몇 보이지만 완벽하게 해결할 수 있는 방법은 없는 듯하다. (몇 명 보이지 않는 이유가 화면 구성시 이러한 문제가 발생하지 않게끔 해주는 widget 이나 structure 가 있는지도 모르지....) 하나 찾은..
Firebase crashytics 를 사용하려면 Firebase cli를 먼저 설치한뒤 configure 해야 하는데, configure 가 되지 않고 아래의 오류 메시지만 뜬다. Firebase 연동부터 문제에 부딪혔다. 찾아보니 cli를 설치할때 바이너리 파일로 설치하지말고, npm 명령을 통해서 설치하면 된다는 글이 있어 따라해보았다. FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command Flutterfire just added a CLI for us to use but I'm having a problem with the flutterfire configure command. I..
동영상을 asset 에 넣고 app bundle을 생성하니 700M 가 넘어서 deferred compoenet 를 적용하려고 여러 자료를 보면서 적용해보았으나 key 와 관련하여 문제가 발생하여 다시 roll back 하기전 내가 작업했던 부분 정리하려함. 그전에, key와 관련하여 알아보다가 여기 글에서본 명령을 입력해보니, ./gradlew signingReport deferred compoent 로 설정한 모듈에 대한 정보가 없었다. 이걸 채워주지 않아서 안된가건가 싶기도 하다. 아무튼, 롤백하기전 수정한 것들을 하나씩 정리해보자. pubspec.yalm 파일에 assets/video 삭제하고, 아래와 같이 deferred-components 에 새로운 모듈 이름과 추가할 에셋 directory ..
- Total
- Today
- Yesterday
- Syncfusion
- BLE
- 에러
- position
- firebase
- UI
- DART
- 크롬
- plugin
- Chrome
- hide
- IOS
- UX
- 플러터
- addPostFrameCallback
- Bluetooth
- TextField
- 앱 프로그래밍
- Flutter
- 한빛미디어
- 문제 해결
- 디자인
- 앱개발
- error
- TextFormField
- 이미지
- 앱
- 다트
- 인사이트
- SizedBox
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |