일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 인프런
- html
- java
- springboot
- 건담
- C로 시작하는 컴퓨터 프로그래밍4판
- 単語
- Python
- javascript
- 디지몬
- Spring
- 자바
- 일본어
- nico
- 日本語
- rails
- DART
- ruby
- 반다이몰
- 건담베이스
- CSS
- vscode
- jsp
- rails7
- Flutter
- 비즈니스일본어
- メソッド
- 연습문제
- 一日一つメソッド
- Web
Archives
- Today
- Total
AR삽질러
Flutter 기초 - Callback (22) 본문
728x90
Flutter 기초 - Callback (22)
1. Callback
- 함수나 메서드를 다른 함수나 메서드의 인자로 전달하는 기법으로 특정 이벤트나 조건이 만족되었을때 지정한 코드를 실행할 수 있다.
2. Gesture
- 사용자의 터치입력으로 GestureDetector 위젯을 사용해 탭, 더블탭, 드래그, 핀치 등의 이벤트를 처리할 수 있다.
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: HomeWidget()));
}
class HomeWidget extends StatelessWidget {
const HomeWidget({super.key});
@override
Widget build(BuildContext context) {
return const SafeArea(
child: Scaffold(
body: Body(),
),
);
}
}
class Body extends StatefulWidget {
const Body({super.key});
@override
_BodyState createState() => _BodyState();
}
class _BodyState extends State<Body> {
@override
Widget build(BuildContext context) {
return const TestWidget();
}
}
class TestWidget extends StatefulWidget {
const TestWidget({super.key});
@override
State<TestWidget> createState() => _TestWidgetState();
}
class _TestWidgetState extends State<TestWidget> {
int value = 0;
void addCounter() {
setState(() => ++value);
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Center(
child: Text('Count : $value', style: const TextStyle(fontSize: 30)),
),
TestButton(addCounter),
],
);
}
}
class TestButton extends StatelessWidget {
const TestButton(this.callback, {super.key});
final VoidCallback callback;
@override
Widget build(BuildContext context) {
return Container(
margin: const EdgeInsets.symmetric(vertical: 8),
width: double.infinity,
child: GestureDetector(
onTap: callback,
child: Center(
child: Container(
padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 8),
decoration: BoxDecoration(border: Border.all()),
child: const Text(
'Up Counter',
style: TextStyle(fontSize: 24),
))),
),
);
}
}
TestWidget
- addCounter함수에서 버튼이 클릭되어 호출되었을때 value를 증가시키고 UI를 업데이트한다.
- Text위젯을 통해서 화면에 증가된 값이 표시되고 TestButton을 통해서 사용자 입력을 받아 카운터를 증가 시킨다.
TestButton
- 버튼이 탭될때마다 주어진 콜백을 실행하고 GestureDetector를 사용해 이벤트를 감지한다. 탭이 될때 callback함수가 실행되어 _TestWidgetState의 addCounter메소드가 호출되 카운터 값이 증가한다.
728x90
반응형
LIST
'Dart > Flutter' 카테고리의 다른 글
Flutter 기초 - Theme (25) (0) | 2024.05.24 |
---|---|
Flutter 기초 - 페이지이동2 (24) (0) | 2024.05.24 |
Flutter 기초 - 페이지이동1 (23) (0) | 2024.05.23 |
Flutter 기초 - PopupMenu (21) (0) | 2024.05.22 |
Flutter 기초 - Switch (20) (0) | 2024.05.22 |