반응형
Flutter에서 자식 위젯에서 부모 위젯으로 이벤트를 전달하는 방법에는 여러 가지가 있습니다. 그 중 하나는 콜백 함수를 사용하는 방법입니다. 예를 들어, 자식 위젯에서 특정 이벤트가 발생했을 때 부모 위젯에 알릴 수 있습니다.
아래는 콜백 함수를 사용하여 자식 위젯에서 부모 위젯으로 이벤트를 전달하는 예제입니다.
- 부모 위젯 코드:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: ParentWidget(),
);
}
}
class ParentWidget extends StatefulWidget {
@override
_ParentWidgetState createState() => _ParentWidgetState();
}
class _ParentWidgetState extends State<ParentWidget> {
String _message = "No message from child";
void _handleMessageFromChild(String message) {
setState(() {
_message = message;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Parent Widget'),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(_message),
ChildWidget(onMessage: _handleMessageFromChild),
],
),
);
}
}
- 자식 위젯 코드:
import 'package:flutter/material.dart';
class ChildWidget extends StatelessWidget {
final Function(String) onMessage;
ChildWidget({required this.onMessage});
void _sendMessageToParent() {
onMessage("Hello from child");
}
@override
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: _sendMessageToParent,
child: Text('Send Message to Parent'),
);
}
}
이 예제에서 ParentWidget
은 상태를 관리하며, 자식 위젯인 ChildWidget
에서 발생하는 이벤트를 처리하는 _handleMessageFromChild
메서드를 가지고 있습니다. ChildWidget
은 onMessage
라는 콜백 함수를 받아서, 버튼을 눌렀을 때 부모 위젯으로 메시지를 전달합니다.
이러한 방법을 통해 자식 위젯에서 부모 위젯으로 이벤트를 전달하고, 부모 위젯에서 해당 이벤트를 처리할 수 있습니다.
반응형
'[====== Development ======] > Flutter' 카테고리의 다른 글
안드로이드 디바이스에서 디버깅시 화면이 꺼지지 않도록 유지하는 방법 (0) | 2024.08.03 |
---|---|
[Flutter] 여러가지 생성자 사용법 (1) | 2024.07.12 |
[Flutter] GlobalKey 에 대해서 (2) | 2024.06.21 |
[Flutter] DefaultTabController 에 대해서.. (0) | 2024.06.20 |
[Flutter] FirebaseAuth 상태에 따라 자동으로 Screen 이동하기 (0) | 2024.06.19 |