본문 바로가기

Flutter

(12)
Flutter GoRouter로 페이지 관리하기 go_router 패키지는 구글 플러터 공식 패키지로 라우팅 관련한 기능들을 사용하기 쉽게 도와주는 패키지이다. https://docs.page/csells/go_router go_router docs.page Setting pubspec.yaml go_router: ^6.3.0 main.dart void main() { runApp(const _App()); } class _App extends StatelessWidget { const _App({Key? key}) : super(key: key); final GoRouter _router = GoRouter( initialLocation: "/", routes: [ GoRoute( path: "/", builder: (_, state) => Home..
Flutter [.mapIndexed()] method Flutter를 사용해서 개발을 하다보면 Iterable 클래스의 .map() 메서드를 리스트의 항목을 매핑하는데 유용하게 사용한다. 그런데 .map() 메서드는 대상 리스트의 항목만 파라미터로 받아오는데, 가끔 파라미터에 index도 있으면 편할 것 같은 상황이 있다. 예를 들면 특정 인덱스에 해당하는 항목에만 속성을 부여하고 싶을 때이다. 그럴 땐 collection.dart 파일을 import 하면 .mapIndexed() 메서드를 사용할 수 있다. import 'package:collection/collection.dart'; images.mapIndexed((index, element) => Padding( padding: EdgeInsets.only( right: index == images...
Flutter Naver Login Android 이슈 flutter_naver_login을 이용하여 네이버 아이디로 로그인 기능을 구현했다. iOS에서는 문제없이 잘 동작했지만 안드로이드에서 lateinit property launcher has not been initialized ~ 라는 에러메시지를 출력하고 기능이 동작하지 않았다. 해결법은 public class MainActivity extends FlutterActivity 에서 public class MainActivity extends FlutterFragmentActivity 로 변경해주면 된다. 위에서 출력된 이슈는 해결되었지만 java.lang.IllegalStateException: You need to use a Theme.AppCompat theme ~ 라는 새로운 에러메시지가 출력..
SingleChildScrollView keyboardDismissBehavior 개발을 하다보면 자주 사용하는 위젯이지만 그 위젯의 속성을 전부 알기란 힘들다. 오늘 Flutter 강의를 들으면서 평소에 지겹도록 사용하는 위젯인 SingleChildScrollView의 keyboardDissmissBehavior라는 속성을 새로 알게 되었는데, ux 관점에서 봤을 때 적절하게 사용하면 좋을 것 같다. keyboardDissmissBehavior: 말 그대로 키보드 제거 동작인데 ScrollViewKeyBoardDissmissBehavior라는 enum 타입을 사용한다. - ScrollViewKeyboardDissmissBehavior.onDrag: 드래그를 하면 키보드가 내려감 - ScrollViewKeyboardDissmissBehavior.manual: 매뉴얼대로 키보드의 "완료..