728x90
반응형
SMALL
Flutter 앱을 만들 때 가장 먼저 접하는 위젯 중 하나가 바로 버튼(Button) 입니다.
버튼은 사용자와의 상호작용을 만드는 가장 기본적인 UI 요소죠.
이번 글에서는 Flutter에서 버튼을 어떻게 만들고,
onPressed 이벤트를 처리하는 방법까지 간단하게 정리해드릴게요.
✅ 1. ElevatedButton 기본 사용법
Flutter에서 가장 기본적인 버튼 위젯은 ElevatedButton입니다.
(예전 RaisedButton은 이제 Deprecated 되었어요)
ElevatedButton(
onPressed: () {
print('버튼이 눌렸어요!');
},
child: Text('눌러보세요'),
)
- onPressed는 버튼이 눌렸을 때 실행할 코드를 넣는 부분입니다.
- child에는 텍스트, 아이콘, 위젯 등 버튼 안에 들어갈 내용을 설정할 수 있어요.
✅ 2. 버튼에 함수 연결하기
이벤트 처리 코드를 함수로 따로 분리할 수도 있어요.
void _handleClick() {
print('버튼 클릭 처리됨');
}
@override
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: _handleClick,
child: Text('함수 연결 버튼'),
);
}
- 가독성도 좋아지고 코드 재사용도 쉬워지죠.
✅ 3. 버튼 상태에 따라 비활성화 하기
onPressed에 null을 주면 버튼이 비활성화됩니다.
ElevatedButton(
onPressed: null,
child: Text('비활성화된 버튼'),
)
✅ 4. 버튼 스타일 커스터마이징
버튼의 색상, 패딩, 모양 등을 바꾸려면 style 속성을 사용합니다.
ElevatedButton(
onPressed: () {},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.green,
padding: EdgeInsets.symmetric(horizontal: 24, vertical: 12),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
),
child: Text('스타일 버튼'),
)
✅ 5. 버튼 클릭 시 화면에 텍스트 변경하기 (Stateful)
버튼을 눌렀을 때 UI가 변하게 만들려면 StatefulWidget이 필요해요.
class MyButtonExample extends StatefulWidget {
@override
_MyButtonExampleState createState() => _MyButtonExampleState();
}
class _MyButtonExampleState extends State<MyButtonExample> {
String message = '아직 눌리지 않았어요';
void _changeMessage() {
setState(() {
message = '버튼이 눌렸어요!';
});
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(message),
ElevatedButton(
onPressed: _changeMessage,
child: Text('눌러보세요'),
),
],
);
}
}
📝 마무리
버튼 하나로도 다양한 동작을 만들 수 있다는 게 Flutter의 매력입니다.
오늘은 가장 기본적인 ElevatedButton을 활용해
이벤트 처리까지 쉽게 익혀봤어요.
다음 글에서는 버튼 외에도 입력 필드(TextField), 토글(Switch) 등
다양한 위젯들을 다뤄볼 예정입니다 😊
728x90
반응형
LIST
'공부 > Flutter' 카테고리의 다른 글
Flutter TextFormField와 유효성 검사|폼 입력 검증 완전 정복 (1) | 2025.07.12 |
---|---|
Flutter TextField 사용법|입력값 받기부터 상태 관리까지 한 번에 배우기 (0) | 2025.07.12 |
Flutter 시작 전 Dart 문법 총정리 🔥|앱 개발 입문자를 위한 필수 개념 (1) | 2025.07.11 |
JSON 데이터 파싱: Flutter에서 효율적으로 다루는 방법 (0) | 2025.01.07 |
Flutter 네트워크 통신 기초: HTTP 요청 보내기 (0) | 2025.01.06 |