[flutter] 플러터 DatePicker의 텍스트 입력 모드

DatePicker를 텍스트 입력 모드로 설정하기

DatePicker를 텍스트 입력 모드로 사용하려면 먼저 TextEditingController를 사용하여 텍스트 필드를 관리해야 합니다. 그런 다음, 사용자가 텍스트 필드를 터치했을 때 DatePicker를 표시하도록 조치해야 합니다.

TextEditingController _textController = TextEditingController();
DateTime _selectedDate;

Future<void> _selectDate(BuildContext context) async {
  final DateTime picked = await showDatePicker(
    context: context,
    initialDate: _selectedDate ?? DateTime.now(),
    firstDate: DateTime(2015, 8),
    lastDate: DateTime(2101),
  );
  if (picked != null && picked != _selectedDate) {
    setState(() {
      _selectedDate = picked;
      _textController.text = DateFormat.yMd().format(picked);
    });
  }
}

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        TextFormField(
          controller: _textController,
          decoration: InputDecoration(
            labelText: 'Select Date',
            suffixIcon: IconButton(
              icon: Icon(Icons.calendar_today),
              onPressed: () {
                _selectDate(context);
              }
            ),
          ),
          onTap: () {
            _selectDate(context);
          },
        ),
      ],
    ),
  );
}

위의 예시 코드는 DatePicker를 텍스트 입력 모드로 사용할 수 있도록 설정하는 방법을 보여줍니다. TextFormField의 controller 속성을 사용하여 텍스트 필드를 관리하고, suffixIcon으로 IconButton을 추가하여 DatePicker를 터치할 수 있는 버튼을 만들었습니다.

텍스트 입력 모드로 DatePicker를 사용하면 앱의 사용자가 텍스트 필드를 통해 편리하게 날짜를 선택할 수 있습니다. 이를 통해 사용자 경험을 개선하고, 앱의 유용성을 향상시킬 수 있습니다.