Flutter 사이트에 들어가서flutter_windows_2.10.1-stable-zip을 받은뒤 압축해제Marketplace 에 flutter를 검색해서 설치한다새로만들기를 누른후 아까 압축해제한 flutter안의 bin폴더경로 적기폴더경로는 해당 폴더에 가서 상단
\*들여쓰기 2칸 꼭!(Lint 잠깐 끄는 용도라고 한다)stless쓰고 tab키하면이렇게 짜잔박스친부분에 이름을 지어 넣으면 메인페이지 세팅이 완료된다하얀도화지가된 메인페이지이곳에 작성을한다이렇게..앱시작시켜달라는 함수Flutter에서 앱 디자인 넣는법:위젯을 넣는다
개별여백주기decoration에 자잘한 옵션들을 넣는다오류나는 이유 컬러가 중복선언되었기 때문. 위의 color를 지워주면 border가 적용되어있다 다시 배경을 적용시키고 싶다면 decoration.BoxDecoration() 파라미터에 color:Color.색,을
리스트를 쫙 뽑아보자
클래스와 위젯을 더 알아보자
누르면 작동하는 앱바 아이콘을 넣자!
메뉴아이콘을 누르면 좌측에서 스윽 하고 나오는 Drawer메뉴를 만들자..!
BuildContext 몬데
누르면 아래에서 뿅
버튼+스낵바 바깥에 빼기~!
토스트메세지 띄우기~~
1.자식요소가 없다면 페이지 내에서 최대한의 공간을 차지하려고 한다. 2.자식요소가 있다면 자식요소의 사이즈 만큼 줄어든다. 3.하나의 자식요소를 가진다. 4.인자
다른페이지로 슝슝~🐤
흰 천과 라우트만 있으면 어디든 갈수있어
오류 멈춰!!
나만의 앱 ! 내 앱의 아이콘을 바꾸자!😍
State를 알아보자
Stateful widget의 setState()
Form위젯을 사용해서 로그인화면을 만들어보자~!
If문을 이용하여 로그인조건 만들기~
주사위 게임앱을 만들자~
Final과 Const의 차이를 알아보자
코드를 간결하게~~!!
바쁘니까 상세한건 나중에 적기~
특정 조건에 따라 위젯을 보이게 할수 있는 위젯 사용방법 visibled이라는 인자에 보여줄 조건(true)을 넣고 child에 보여주고 싶은 위젯을 넣으면 작동한다
상단에 import 'dart:async'; 선언후 잘 작동한다
pubspec.yaml에 flutter_screenutil: 등록 사용하고자 하는 페이지 build에 return 폰트사이즈는 .sp 를붙임
인자를 전달해서 결과값에 따라 바뀌는 슬라이드만들기
정보를 뚝딱뚝딱 가져와서 보여주자
편- 안
정말 기본적인 도넛차트!
위젯 위치까지 스크롤하면 이벤트를 짠!
뚜둔
이번주간 날짜 구하기
오늘이 무슨 요일인지 한글로 띄워보자
어디서 본 그런 layout
아코디언 리스트를 이렇게도 접근할수가 있다아
딸랑딸랑
import 'package:intl/intl.dart';
svg색이 없어졌다면..?!
달력을 띄우고 싶다구요..!!
State 딱대
토글버튼~~
대괄호로 구분해서 넣는다
테마로 감싸서 투명색으로 지정해준다
toast custom
신기한 GIF 애니메이션 넣기
Getx는 중첩을 시러행..
init때 눌렀을때 이벤트에 추가
1.알아내고 싶은 위젯에 글로벌키를 할당하기위해 글로벌키를 만들어준다2.위젯의 키에 글로벌키를 할당한다3.사이즈를 알아내는 함수를 만든다4.함수를 실행해서 확인한다5.결과
SelectableText()로 Text위젯을 대신하면 길게 눌렀을시에 영역이 선택되면서 복사/전체선택이 된다.
import 'package:flutter/services.dart';Clipboard.setData(ClipboardData(text: '복사될 String'));복사는 되지만 화면상으로 아무 효과가 없기때문에 토스트팝업이나 스낵바등으로 유저에게 알려야 한다.
앱에서는 잘만 되던 가로스크롤이 웹에서는 안되는걸 알았다..!(개발자모드로 폰으로 보면 잘됨)해결하고 난뒤에 또 나중에 쓰겠다 싶어서 남긴다.스크롤 하고 싶은 ListView를 ScrollConfiguration로 감싸주고 behavior: MyCustomScrollB
정보를 뭉텅이로 가져오기결과
폰이미지를 짠
연락처 받아오기,추가하기
스크롤 맨 밑까지오면 이벤트가 짠
안드로이드 빌드를 해보자
onChanged를 안해도 된다 ..ㅎ...머쓱
폰 메모리에 데이터를 저장(조회)해보자
actions에 위젯에 Obx가 안먹는다..!
코드결과shrinkWrap: true,를 하지 않으면 Vertical viewport was given unbounded height.라는오류가 뜬다
Grid 레이아웃만들기
알림을 띄워보자
유저귀찮게하기
퐈이어~~
오류 멈춰
퐈이어
int형 숫자키패드.double형은 .추가하면 될거같은데 자리수 제한하는건 고민해봐야겠다
왜 바뀌는데 화면이 바뀌질 않니
시간을 지배하는자
준비사항intl: ^0.16.1결과
defs를 svg태그 내에 최상단에 옮기는방법으로도 안될때 찾아낸 방법이당피그마에서 복사한 svg코드 구조는 대략 이런식이였다온갖 태그들 위치를 옮겨보고 했는데 결과적으로는 image태그를 제외한 모든 태그를 제외하니 잘 보여지게 되었다변경후 구조id도 필요가 없을것
불 - 편
showModalBottomSheet child위젯을 SizedBox로 height로 감싸고 그안에 위젯을 넣어서 바텀시트로 올리면 되지만 child위젯이 오버플로우가 날 경우도 있고 무엇보다 높이를 고정하고 싶지는 않았다검색하던 중child위젯을 wrap으로 감싸면
컬러,텍스트 스타일 무시
이미지에 InkWell을 묶으면 클릭이벤트는 되나 잉크 효과가 나타나지 않는다. 그래서 스택으로 위에 InkWell을 쌓아주어 표현한다
네비게이션에 심어져있는(?)페이지들은 한번 컨트롤러가 만들어지면 쭉 들고가는데페이지에 진입할때마다 컨트롤러를 초기화하고 싶어서 처음엔 \~~controller.to.dispose();이런식으로 하다가 로그에 deleted가 안뜨길래 찾아보니 삭제는 또 다른식이여서 기록
C페이지로 가는 과정이1) A->B->C인경우 2) A->C 인경우가 있는데이때 C에서 상태가 바뀌면 이전페이지의 상태도 바뀌어야 했다.B페이지의 GetxController가 push되었는지 확인을 하고 push가 되었다면 상태를 바꾸고 그렇지 않으면 아무일도 일어나지
로딩시에 스켈레톤 ui로 해달라는 요청을 받았다뭔가했더니 유툽에서 봤던거같은이런 스포화면(?)이다적용은 간단하당pubspec.yaml에 shimmer: 를 추가하고 상단에package:shimmer/shimmer.dart결과
이게 뭐라고 맨날 까먹냐
widget building 중에 실행되는 함수가 있었는데 setState((){});가 불필요하게 있는 부분이여서 지우고 나니 해결됨 state꼬였나봄
이미지에 블렌드효과를 주어야 해서 이미지 위에 stack으로 같은사이즈의 영역을 잡은뒤에 해당 영역(Container)의 backgroundBlendMode를 BlendMode.saturation을 주었는데 이상하게 자꾸 안되었다(전에 분명 되었는데 ㅠ ㅠ)
시스템 알림 설정하기
앱 꺼졌다 켰다 상태가 궁금할때 써먹기
참고 https://www.funwithflutter.dev/creating-custom-animation-curves-in-flutter/flutter가 제공하는 Curve도 많지만 Curve를 상속하는 새로운 class를 만들어서 사용할수 있다
Scaffold의 bottomSheet는 기본적으로 컬러가 화이트 색인데 전역테마를 건들지 않으면서 투명으로 바꾸려고 bottomSheet의 위젯을 Container 위젯으로 감싸고 배경색을 아무리 투명으로 줘도 바텀시트 색 자체가 흰색이라 원하는 효과(아래는 흰색 위로갈수록 투명)을 낼 수 없었다 해결한 방법은 Scaffold를 Theme로 감싸서 테마...