[Flutter] AlertDialog / CupertinoDialog fresh
2021. 9. 8. 13:09
Flutter
위의 영상과 같은 Dialog에서 입력을 받고 입력받은 정보를 바로 Dialog을 해주고 Dialog를 나왔을 때 Dialog의 값을 바로 반영해주는 Dialog를 만들 것입니다. AlertDialog와 CupertinoDialog 같은 Dialog들은 기본적으로 Stateful 위젯이 아니기 때문에 Dialog에서 그 내용을 수정하면 바로 반영되지 않습니다. 아래와 같은 코드로 날짜들을 입력받고 Dialog를 만들 수 있습니다. 하지만 Dialog는 Stateless이기 때문에 아래와 같은 코드는 날짜를 입력해도 "구매 날짜를 입력하세요!"의 메시지가 변하지 않을 것입니다. void directInput(BuildContext context) async { bool purchaseFlag = false..
[Flutter] 비동기 함수 사용시 주의점
2021. 9. 4. 16:49
Flutter
runApp()을 하기 전에 비동기로 main문에서 처리할 내용이 있으면 main문에 맨 위에 넣어줘야 하는 함수가 있다. void main() { WidgetsFlutterBinding.ensureInitialized(); runApp(MyApp()); }
[Flutter] json parsing
2021. 9. 4. 15:00
Flutter
flutter에서 json을 List로 Decode 하는 방법과 List에서 Json으로 인코드 하는 방법을 알아보겠습니다. https://pub.dev/packages/convert convert | Dart Package Utilities for converting between data representations. Provides a number of Sink, Codec, Decoder, and Encoder types. pub.dev 우선 pubspec.yaml에 위의 라이브러리 종속성을 추가해줍니다. dependencies: convert: ^3.0.1 아래와 같은 class를 인코딩 디코딩 할 것입니다. class ListData { String purchaseDate; String exp..
[Flutter] Button 오른쪽에 아이콘 만들기
2021. 8. 8. 15:17
Flutter
버튼 왼쪽에 아이콘을 만들기는 굉장히 편하다. ElevatedButton.icon( onPressed: null, label: Text('OutlinedButton'), icon: Icon(Icons.favorite), ), 위와 같이 왼쪽에 아이콘을 만들 수 있다. 하지만 오른쪽에 아이콘을 만들기 위해서는 약간 더 귀찮은 과정을 거쳐야 한다. ElevatedButton( child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text("Button"), Icon(Icons.favorite), ], ), onPressed: null, ),
[Flutter] 스낵바(Snackbar) 주의점
2021. 8. 4. 16:00
Flutter
스낵바란 아래 사진 하단의 문구와 같이 어떠한 버튼을 클릭하였을 때 화면 하단에 뜨는 글이다. 내 실수 import 'package:flutter/material.dart'; class SettingPage extends StatelessWidget { const SettingPage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( // key: scaffoldKey, theme: ThemeData(primaryColor: Colors.white), home: Scaffold( appBar: AppBar( centerTitle: true, title: const Text("Set..