본문 바로가기

Mobile/Flutter6

[Flutter] 플러터 위젯 overflow 해결 Flutter 앱 개발에서 기기 해상도 / 배율(density) / 화면비(aspect ratio) 차이로 인해 overflow 문제가 생기는 건 아주 흔한 이슈입니다.이 문제를 모든 기기에서 안정적으로 대응하는 구조로 만들려면 고정된 픽셀 대신 반응형(responsive) 또는 비율 기반(layout-aware) 레이아웃으로 설계해야 합니다. 문제 원인Container, SizedBox 등에 고정된 width / height 값을 주었을 때→ 어떤 기기에서는 화면보다 커지며 RenderFlex overflowed 발생또는 Column / Row 안에서 자식 위젯이 남은 공간보다 커지는 경우 해결 방법아래 3가지만 지켜도 대부분 해결됩니다. 1. 고정 크기 대신 가변 크기 사용MediaQuery.of(.. 2025. 11. 27.
[Flutter] 비동기 작업 WidgetsBinding.instance.addPostFrameCallback vs Future.microtask WidgetsBinding.instance.addPostFrameCallback와 Future.microtask는 모두 비동기 작업을 스케줄링하는 방법이지만, 실행 타이밍과 사용 목적에서 중요한 차이가 있습니다. 1. 실행 타이밍addPostFrameCallbackWidgetsBinding.instance.addPostFrameCallback((_) { // 현재 프레임이 완전히 렌더링된 **후**에 실행 print('프레임 렌더링 완료 후 실행');}); Future.microtaskFuture.microtask(() { // 현재 이벤트 루프가 끝나는 **즉시** 실행 (프레임 렌더링과 무관) print('이벤트 루프 완료 후 즉시 실행');}); 2. 실행 순서 비교@overridevoid.. 2025. 6. 9.
[Flutter] 플러터 개발 환경 셋팅 참고 강의코드팩토리 [2023년 12월 최신] Flutter MacOS 환경설정 1. Rosetta 2 설치sudo softwareupdate --install-rosetta --agree-to-license관련 메뉴 : [Flutter 홈페이지 > 우측 Get Started 버튼 > macOS 선택 > iOS 선택] 시 페이지에 설명 기재됨Apple 실리콘 칩이 탑재된 Mac에서 Flutter 구성 요소 중 일부가 Rosetta 2 번역 프로세스를 필요로 한다. 따라서 Apple 실리콘에서 모든 Flutter 구성 요소를 실행하려면 Rosetta 2를 설치해야 한다. Rosetta 2는 Intel 기반 애플리케이션을 Apple 실리콘에서 실행할 수 있도록 도와주는 소프트웨어이다. 2. Flutter 설.. 2025. 3. 29.
[Flutter] TextEditingController 초기값 설정 방법 플러터에서 TextEditingController의 초기값을 설정하는 방법에는 2가지가 있다. 1) 선언 후 초기값 설정 final name = TextEditingController(); // 선언 name.text = 'Jin'; // 초기값 설정 2) 선언과 동시에 초기값 설정 final name = TextEditingController(text: 'Jin') 2023. 1. 13.
[Flutter] 플러터 InkWell 클릭 시 스플래시 효과를 주는 방법 색상이 있는 Container 위젯을 InkWell 위젯으로 감싸 버튼을 생성하면, InkWell 위젯임에도 불구하고 스플래시 효과가 나타나지 않는 문제가 발생한다. import 'package:flutter/material.dart'; class HomePage extends StatelessWidget { const HomePage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return SafeArea( child: Scaffold( appBar: AppBar( title: const Text('버튼 스플래시'), ), body: Center( child: InkWell( borderRadius: Bord.. 2023. 1. 13.