[flutter] 플러터 TimePicker에서 시간 선택을 취소하는 방법

플러터(Flutter)에서 TimePicker를 사용하여 시간을 선택하는 동안 사용자가 선택을 취소하고 싶을 수 있습니다. 이 문제를 해결하기 위해 다음과 같은 방법을 사용할 수 있습니다.

1. showTimePicker 함수 사용

플러터의 showTimePicker 함수를 사용하여 TimePicker를 표시할 수 있습니다. 이 함수는 사용자가 시간을 선택하거나 선택을 취소할 때까지 대기합니다. 사용자가 선택을 취소하면 함수는 null을 반환합니다.

TimeOfDay selectedTime = await showTimePicker(
  context: context,
  initialTime: TimeOfDay.now(),
);

if (selectedTime != null) {
  // 시간이 선택됨
} else {
  // 선택이 취소됨
}

위의 예제에서 showTimePicker 함수를 호출하여 TimePicker를 표시합니다. 사용자가 시간을 선택하거나 선택을 취소하기까지 함수는 대기합니다. 사용자가 시간을 선택한 경우 selectedTime 변수에 선택한 시간이 할당되고, 선택을 취소한 경우 null이 할당됩니다.

2. Timer 클래스 사용

또 다른 방법은 Timer 클래스를 사용하여 일정 시간이 지난 후 선택을 취소하는 것입니다. 예를 들어, 사용자가 시간을 선택하기까지 5초 동안 대기한 다음 선택되지 않으면 선택이 취소되도록 할 수 있습니다.

bool isTimeSelected = false;

// TimePicker를 표시
showTimePicker(
  context: context,
  initialTime: TimeOfDay.now(),
).then((selectedTime) {
  if (selectedTime != null) {
    // 시간이 선택됨
    isTimeSelected = true;
  }
});

// 5초 후 선택이 취소됨
Timer(Duration(seconds: 5), () {
  if (!isTimeSelected) {
    // 선택이 취소됨
  }
});

위의 예제에서 Timer 클래스를 사용하여 5초 후에 선택이 취소되도록 설정합니다. showTimePicker 함수를 호출하여 TimePicker를 표시하고, 선택된 시간이 있는 경우 isTimeSelected 변수를 true로 설정합니다. Timer 클래스를 사용하여 5초 후에 isTimeSelected 변수가 false인 경우 선택이 취소된 것으로 처리합니다.

이와 같은 방법을 사용하여 사용자가 플러터 TimePicker에서 시간 선택을 취소할 수 있습니다. 각각의 방법은 다양한 상황에 따라 사용할 수 있으니 상황에 맞게 선택하여 사용하면 됩니다.

참고: Flutter API Documentation - showTimePicker