ScrollController Listview, GridView, CustomScrollView 등과 같은 scrollable widget을 컨트롤 한다. 멤버 변수들을 State objects로 저장하고, 각각 State.build 를 이용해 재사용한다. 하나의 scroll controller는 여러개의 scrollable widgets을 컨트롤할 수 있지만, offset 값을 가져오는 등의 몇몇 동작을 위해서는 하나의 scroller widget 과 연결되어 사용해야 한다. scroll controller는 개별 scrollable widget의 특정 상태를 관리하기 위해 ScrollPosition을 생성한다. custom ScrollPosition을 사용하기 위해서는 ScrollController의..
이번주 Flutter 유튜브의 DecodingFlutter 섹션 에는 "Packages versus Plugins?" 라는 제목의 영상이 올라왔다. https://www.youtube.com/watch?v=Y9WifT8aN6o 나도 궁금했지만 찾아보지는 않았던 부분인데, 업로드된 영상의 제목을 보고 바로 클릭해서 봤다. 한글 자막이 없어 100% 이해를 못해서, 인터넷에서 검색을 해서 부족한 부분을 채웠다. 아래 링크에 있는 글이 잘 정리 되어있는 듯하다. https://www.linkedin.com/pulse/difference-between-dart-package-plugin-flutter-leo-uzair Difference Between Dart Package and Plugin in Flutte..
CustomPaint CustomPaint는 canvas를 제공하는 위젯이다. painter, child, foregroundPainter가 다 그림을 그리는 property인데 왜 나뉘어져 있는지 모르겠다. 순서대로 painter, child, foregroundPainter를 stack 처럼 쌓아올리며 그린다. 즉, 나중에 그려지는 위젯이 위에 위치한다 CustomPaint에서 제공하는 size의 크기는 크게 3부분의 값으로 부터 영향을 받는다 CustomPoaint 위젯의 크기는 기본적으로 부모 > 자식(child) > size (CustomPaint의 속성) 순으로 우선순위를 둔다. 부모가 크기를 가장 우선적으로 적용하며, 부모에 명시된 크기가 없을 경우 CustomPaint의 자식의 크기를 적용..
참고하는 패키지의 코드에서 addPostFrameCallback이 있다. 아래와 같이 사용되고 있었다. WidgetsBinding.instance!.addPostFrameCallback( function ) WidgetsBinding 부터 찾아봐야겠다. Flutter api 웹페이지에는 아래와 같이 나온다. 그리고 addPostFrameCallback 은, 그리고 WidgetsBinding 이 Mixin 으로 선언되어있는데 뒤에 on 키워드가 있다. on 키워드가 어떤건지 기억이 나지 않아 다시 찾아보았다. 아래 블로그 참고. https://paulaner80.tistory.com/entry/Dart-mixin-%EC%9D%B4%EB%9E%80-1 Dart mixin 이란? 1. 믹스인이 필요한 이유 C..
왜 Stack의 첫번째 child로 비어있는 SizedBox를 깔아주는 것일까? 현재 참고 하고 있는 Time table 패키지의 코드를 보면 Stack 위젯의 children의 첫번째로 SizedBox를 사용하고 있다. 내부에 의미있는 child도 없는, 빈 box 를 왜 처음에 깔아두는지 몰라서 검색해 보았다. 참고자료1 (링크) Stack 내에서 자리표시자(a syntactic placeholder)로 SizedBox를 사용한다고 한다. SizedBox는 const constructor라서 그렇지 않은 Container에 비해 컴파일러가 더 효율적인 코드를 생성할 수 있다고 한다. 또한 Container는 SizedBox에 비해 많은 properties 와 methods를 가지고 있어서 초기화 하는..
나는 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..
하루 일과 계획표를 위해 벤치마킹할 패키지를 찾았다. https://pub.dev/packages/syncfusion_flutter_calendar syncfusion_flutter_calendar | Flutter Package The Flutter Calendar widget has nine built-in configurable views that provide basic functionalities for scheduling and representing appointments/events efficiently. pub.dev 자료는 위의 링크와 같다. 그래고 패키지에 대한 자세한 설명은 아래 웹 페이지에 잘 나와있다. https://help.syncfusion.com/flutter/calenda..
- Total
- Today
- Yesterday
- 문제 해결
- firebase
- SizedBox
- 앱
- DART
- 다트
- UI
- error
- Syncfusion
- 디자인
- addPostFrameCallback
- 크롬
- 플러터
- UX
- Bluetooth
- TextFormField
- 앱개발
- plugin
- BLE
- 한빛미디어
- hide
- 이미지
- 에러
- position
- Flutter
- IOS
- Chrome
- TextField
- 앱 프로그래밍
- 인사이트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |