Flutter
-
flutter - Snack barFlutter 2021. 7. 20. 02:03
[Snack bar] -> 스크린 하단에 간단한 메시지를 띄우는 기능 [ScaffoldMessenger 클래스] -> 이전 버전에서 사용하던 Scaffold.of(context) method를 사용해서 스낵바를 구현하응 과정이 복잡했었는데 이번에 새롭게 나온 ScaffoldMessenger 위젯을 통해서 간단하게 스낵바를 구현할 수 있다. [기존 메서드에서의 문제 해결점] -> 기존 메서드에서 구현한 스낵바는 오직 현재 구현한 페이지 내의 build context 내의 Scaffold 상에서만 구현될 수 있었다. -> 다른 페이지로 넘어가면 스낵바는 유지되지 못했었다. -> ScaffoldMessenger 위젯은 MaterialApp같은 위젯 트리 최상위 위치에서 여기저기 흩어져 있는 Scaffold들을..
-
flutter - BuildContextFlutter 2021. 7. 19. 23:31
[BuildContext] -> 첫번째 정의: build 함수는 Scaffold Widget을 리턴하는데 이때 위젯 트리상에서 어디에 위치하는가에 대한 context라는 정보를 넣어서 리턴해준다는 의미이다. -> 두번째 정의: BuildContext는 stateless 위젯이나 state 빌드 메서드에 의해서 리턴된 위젯의 부모가 된다. -> Scaffold는 MyPage라는 부모 위젯을 가졌다. Scaffold 위젯이 리턴이 되었을 때 Scaffold는 부모인 MyPage 위젯의 context를 그대로 물려받게 된다는 의미이다. -> 필요에 의해서 위젯 트리 상에서 Scaffold의 위치를 알아내기 위해서는 Scaffold의 context를 참조하는게 아니라 Scaffold의 자식 위젯의 context..
-
flutter - Drawer menu 앱 만들기Flutter 2021. 7. 19. 23:15
[최종 코드] import 'package:flutter/material.dart'; void main(List args) { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({ Key? key }) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'AppBar', theme: ThemeData( primarySwatch: Colors.red ), home: MyPage(), ); } } class MyPage extends StatelessWidget..
-
flutter - Error: ADB exited with exit code 1Flutter 2021. 7. 19. 18:09
Error: ADB exited with exit code 1 Performing Streamed Install adb: failed to install C:\Users\----\----\vscode\flutter_project\flutter_ch15_drawer_menu: Exception occurred while executing: android.os.ParcelableException: java.io.IOException: Requested internal only, but not enough space at android.util.ExceptionUtils.wrap(ExceptionUtils.java:34) at com.android.server.pm.PackageInstallerService...
-
flutter - appBar에 메뉴 아이콘 추가Flutter 2021. 7. 19. 03:24
[코드] import 'package:flutter/material.dart'; void main(List args) { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({ Key? key }) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'AppBar', theme: ThemeData( primarySwatch: Colors.red ), home: MyPage(), ); } } class MyPage extends StatelessWidget { ..
-
flutter - 클래스와 위젯의 관계Flutter 2021. 7. 19. 02:56
[Class] -> 객체에 대한 속성과 기능을 담고있는 일종의 설계도라고 볼 수 있다. -> 인스턴스: 클래스에 정의된 속성과 기능대로 만들어진 사물을 인스턴스라고 한다. -> 객체와 인스턴스를 혼용해서 쓰는 경우가 있지만 엄밀히 말하면 조금 다르다고 한다. -> 프로그래밍 상에서 객체: 클래스가 정의된 후 메모리상에서 할당되었을 때 이를 객체라고 한다. -> 프로그래밍 상에서의 인스턴스: 클래스를 기반으로 생성 된, 클래스의 속성과 기능을 똑같이 가지고 있고 실제로 프로그래밍 상에서 사용되는 대상을 뜻함 [기억해야할 Dart 문법] -> 함수가 리턴 타입과 매개변수 타입을 추론해서 수행이 가능하다. -> 해당 값들을 자신이 원하는 기능을 위해 강제하고 싶다면 따로 붙여줄 수 있다. [dart의 생성자]..
-
flutter - 캐릭터 정보 앱 만들기Flutter 2021. 7. 19. 02:00
[최종 코드] import 'package:flutter/material.dart'; void main(List args) { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({ Key? key }) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, // 우측 상단에 debug 띠 지우기 title: "BBANTO", home: Grade(), ); } } class Grade extends StatelessWidget { const Grade({ Key? key }..
-
flutter - 위젯 배치Flutter 2021. 7. 18. 03:42
[위젯 배치] [결과 화면] - 기존 코드에서 패딩을 지웠더니 text가 정중앙으로 이동한다. [결과] - 일반적으로 center 위젯을 정 중앙에 배치한다. - 하지만 center 위젯과 column 위젯이 만나게 되면 결과가 달라진다. - column 위젯은 자식 위젯들에게 세로축 관련해서 높의의 제약이 전혀 없으니 마음대로 확장해도 되도록 전달한다. -> 가로축 상으로는 넓이에 대한 확실한 제약을 두지만 세로축 상으로는 아무런 제약이 없다. - 그래서 center 위젯과 column 위젯이 만나면 center 위젯은 column 위젯의 자식들에 대한 세로축 위치는 관여하지 않고, 대신 현재 컬럼 위젯의 자식 위젯 세로축 높의에 자동으로 fix가 되어 버린다. [기존 코드에서 MainAxisAlign..