나는 Time table을 custom paint를 이용해서 device의 screen에 보여지는 부분에 한해서 그리도록 해주었다. 그리고 Gesture detector를 이용해서 drag 이벤트가 발생할 때마다 main axis(내 경우 vertical)의 픽셀 값 변화량을 가져와서 그만큼 offset을 custom paint에서 주어서 그만큼 x축(vertical 이라) 픽셀 값을 보정해서 다시 그리도록 했다. 직접 screen에 그리는 방식으로 time table을 표현하는 것에는 뭔가 부족한 것들이 많이 보였다. 손가락으로 스크롤링하는 속도가 빠를 때 그만끔 화면도 빨리 지나가는 것처럼 보이고 싶은데 그런 기능을 직접 구현해야 한다던가, 그리려는 time table의 끝에 도달 했을 때(예를 들어..
지금 만들어 보고 있는 scheduler에서 time table을 표현하기 위해 container로 감싼뒤 그안에서 custom paint를 이용해서 time table을 그리려고 하고 있다. 그런데 mediaQuery 를 이용해서 받아오는 context의 size 정보는 parent 위젯의 사용가능 영역에 대한 정보가 아니라, 언제나 device의 full screen 정보(height 와 width 등..) 란 것을 알게 되었다. 그렇다면 child 위젯에서 parent 위젯의 사용가능 영역 정보를 알려면 어떻게 해야하나? LayoutBuilder 를 사용하면 된다. The main difference between Media Query and LayoutBuilder is that Media Que..
Building your first Flutter app (영상 링크) Infinite list of words를 보여주는 앱을 만드는 방법에 대하여 시작부터 단계적으로 설명하는 영상. Codelabs에 텍스트로 step by step 설명되어있음. (링크) flutter 설치하고 project 를 생성하는 방법 외부 Package(library)를 import 하는 방법 pubspec.yaml 파일에서 사용할 package를 depencies에 추가 터미널에서 "flutter packages get" 입력하여 실행(안드로이드 스튜디오의 경우) main.dart 에서 import 키워드를 패키지를 가져오기(?) stateless widget과 stateful widget을 이용해서 random word를..
간략한 설명 보여주고자하는 이미지의 양이 많고, 각 이미지를 다양한 크기로 보여주고자 할 때 쓸만한 패키지다. 사용예는 아래와 같다. 자료 링크 https://medium.com/flutterdevs/wall-layout-in-flutter-44a482cc4fad Wall Layout In Flutter In this article, we will explore the Wall Layout In flutter using the wall_layout_package. With the help of the package, we can easily… medium.com
Null Safety Null safety를 선택하면, 코드에서 사용한 type들은 기본적으로 non-nullable 이 된다. non-nullable 변수는 그 변수를 사용하기 전에 값을 꼭 초기화 시켜야 한다. 선언과 동시에 초기화를 시킬 필요까진 없지만, 해당 변수가 사용되기전에는 값을 할당해야 한다. 변수가 null 값을 가질 수 있도록 하기 위해서는 type 선언에서 type명 뒤에 ?를 붙이면 된다. Null 관련 연산자 연산자 사용예 의미 ?? A= B??C B가 null이 아니면 B를 A에 입력하고, null이라면 A에 C를 입력 ??= A ??= B A가 null이면 A에 B를 입력 ?. A?.test( ) A가 null이 아니면 test( )를 실행 ! A! A가 null이 아님을 체크..
76. IgnorePointer 앱이 유저와 interacting(Tapping, Clicking, Dragging, Scrolling 등등) 하는 것으로 부터 보호하고 싶을 때 사용.(AbsorbPointer 랑 차이가 뭐지) . 유저로부터 보호하고자하는 위젯을 IgnorePointer로 감싸면된다. 77. CupertinoActivityIndicator 쿠퍼티노 형태의 프로그래스 인디케이터. 78. ClipOval 하위 요소를 원이나 타원으로 둥글게 오려낼 수 있는 위젯. 기본 모드는 가져오는 child를 타원형으로 바꿔 놓지만, clipper 특성을 사용하면 맞춤식 재단을 할 수 있다. 79. AnimatedWidget AnimatedWidget은 추상 클래스로 그자체로는 위젯은 아니다. 원하는 애..
51. FractionallySizedBox 사용가능한 공간 내에서 위젯의 크기가 절대 값이 아닌 비율이나 상대값으로 설정가능하다. 이 위젯을 Flexible 위젯으로 감싸면 열과 행에 대해서 잘 위치시킬 수 있다. 52. ListView 리스트를 스크롤가능하게 보여주고 싶을 때 사용. 동적으로 만들어지는 리스트뷰가 필요할때는 ListView.builder를 사용. 항목들 사이가 붙이 있는 것이 싫으면 분리된 ListView.separated 를 사용하면 된다. ListView.custom 을 이용하여 자신이 원하는 리스트뷰를 만들수 있다. 53. ListTile material design list spec(이게 어떤거지?)을 직접 구현해준다. ListView랑 차이점이 뭐지? ListTile은 안에 ..
이번엔 Google Developers 유튜브의 Flutter Widget of the Week 25번째 영상부터 볼차례. 50편 까지 보면 되려나? 24. BackdropFilter ImageFilter를 child로 받아서 이미지들을 블러, 회전, 각도조절 등 다양한 이미지 효과를 줄 수 있다. 25. Align 부모 위젯의 한정된 구역 내에서 위젯의 위치를 설정할 수 있다. 26. Positioned Stack을 이용하여 여러 위젯들이 결합되어있을 때 이런 위젯의 위치를 어떻게 원하는 위치에 배치할 수 있다. 27. AnimatedBuilder 애니메이션 효과를 줄 수 있는 위젯 중 하나. Animation을 정의하고 AnimationBuilder로 실행하면 됨. 그리고 이를 위해서 Animatio..
- Total
- Today
- Yesterday
- BLE
- addPostFrameCallback
- UI
- TextField
- 앱개발
- SizedBox
- firebase
- DART
- 크롬
- 에러
- 앱
- hide
- Bluetooth
- Flutter
- 이미지
- Syncfusion
- 문제 해결
- 디자인
- 앱 프로그래밍
- position
- Chrome
- 인사이트
- 플러터
- 다트
- UX
- error
- IOS
- 한빛미디어
- TextFormField
- plugin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |