Flutter 에서 Custom callback 함수를 간단하게 구현하는 방법
1. 인터페이스 역할을 해주는 함수를 typedef 로 정의
typedef DateTimeCallback = void Function(DateTime);
2. 원하는 콜백을 만들고 싶은 함수에 DateTimeCallback 이라 선언한 함수를 파라미터로 넣어준다.
class SelectCalendar {
Future showPickerDate(BuildContext context, DateTime initDate, DateTimeCallback callback) async {
await showDatePicker(
....
}).then((value) => {
if (value != null)
{
callback(value)
}
});
)
}
typedef DateTimeCallback = void Function(DateTime);
3. callback 을 받고자 하는 곳에서 위해서 만든 showPickerDate() 함수를 사용해서 선언해서 callback 을 받으면 된다.
SelectCalendar().showPickerDate(
context, _now, (date) {
setState(() {
_now = date;
});
}
);
Flutter 에서 Void callback 함수를 간단하게 구현하는 방법
1. 기존에 존재하는 Void Callback 을 사용하면 간단하게 구현된다.
platform_dispatcher.dart 에 존재하는 기본 typedef 를 사용하면 된다.
typedef VoidCallback = void Function();
2. 코두 구현해서 사용
Widget wTextButton(
Color color, String assetPath, String text, VoidCallback callback) {
return TextButton.icon(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all<Color>(color)),
onPressed: () {
callback.call();
},
icon: Image.asset(
assetPath,
width: 20,
),
label: Text(
text,
style: const TextStyle(color: Colors.white),
));
}
Widget iconTextButton() {
return Container(
child: Row(
children: <Widget>[
wTextButton(색깔, "이미지 경로", "버튼 이름", () {
}),
...
],
),
);
}
반응형
'Dev > Flutter' 카테고리의 다른 글
Flutter - border 적용 (0) | 2021.11.24 |
---|---|
Flutter - 함수 파라미터에 기본 인자 설정하기 (0) | 2021.11.23 |
Flutter - ScrollListView (0) | 2021.11.17 |
Flutter - Syncfusion Calendar 사용 (0) | 2021.11.10 |
Flutter - 앱 종료 하기 (0) | 2021.11.09 |