목록Flutter (4)
아무나 빌려가세요
Navigator.push에서 then을 추가하고 setState를 적용한다. setState가 실행됨에 따라 새로고침이 되는 방식이다. 이동된 페이지에선 Navigator.pop을 해주면 된다. Navigator.push(context, MaterialPageRoute(builder: (context) => moveToPage())) .then((value) { setState(() {}); }); 첫번째 위젯에서 두번째 위젯을 return하고 세번째 위젯에서 Navigator.pop을 하는 경우 첫번째 위젯을 새로고침 하기 위해선 다른 방법이 있다. 첫번째 위젯에 위의 push를 함수의 형태로 두번째 위젯에 전달한다. firstWidget ... Container( child : secondWidge..
흔히 앱에서 볼 수 있는 처음 켰을때 뜨는 팝업창을 구현했다. 시작하자마자 창이 떠야하기 때문에 initState에 함수를 넣었다. @override void initState() { SchedulerBinding.instance!.addPostFrameCallback((_) { //위젯을 바로실행시키기 위해 이 함수가 필요하다. showBannerDialog(); }); super.initState(); } showDialog를 이용해 AlertDialog를 실행시키고 content안에 내용을 넣을 수 있다. showDialog( context: context, builder: (context) => StatefulBuilder(builder: (context, setState) { //Dialog안에..
스크롤을 조절하기 위해 변수를 선언한다. final _scrollController = ScrollController(); 투명도를 조절하기 위한 함수를 선언한다. double scrollOpacity = 1.0; // 첫시작은 전부 보이게 설정한다. onScroll() { setState(() { double offset = _scrollController.offset; if (offset 100) { offset = 100; } scrollOpacity = 1 - offset / 100; // 스크롤을 올릴때마다 0으로 수렴한다. 1을 빼지 않으면 반대로 적용 }); } 함수를 스크롤에 리스너로 등록한다 @override void ..
필수 dart 패키지 import 'package:http_parser/http_parser.dart'; import 'package:image_picker/image_picker.dart'; import 'package:dio/dio.dart'; 촬영한 단일사진을 선택하는 함수 File? imageFile; ... onPressed: () => getImage(source: ImageSource.camera) //imageSource에서 camera로 할경우 촬영가능 gallary로 할 경우 이미지 갤러리로 이동 ... void getImage({required ImageSource source}) async { final file = await ImagePi..