플러터 날짜 선택기 구현
15765 단어 tutorialandroidflutterprogramming
날짜 선택기란 무엇입니까?
날짜 선택기 위젯을 사용하면 지정된 형식으로 날짜를 쉽게 선택할 수 있습니다. Date Picker은 원하는 날짜로 빠르게 이동할 수 있는 일, 월 및 연도 보기 옵션을 제공합니다. 날짜 선택 컨트롤은 많은 데이터 유효성 검사를 자동으로 처리하기 때문에 날짜 작업을 쉽게 해줍니다.
프로젝트 요구 사항에 기반한 개발자로서 프로젝트에 날짜 선택기 위젯을 추가해야 할 수 있습니다.
전제 조건
이 자습서를 완료하려면 다음이 필요합니다.
1단계 - 프로젝트 설정
설정을 따르기 위해 새로운 Flutter 앱 프로젝트를 생성하게 됩니다.
Flutter에 대한 환경을 설정했으면 다음을 실행하여 새 애플리케이션을 만들 수 있습니다.
C:\Users\PC>flutter create flutter_date_picker
새 프로젝트 디렉토리로 이동하고 vscode로 엽니다.
lib/main.dart
를 열고 lib/main.dart
의 내용을 다음 코드 조각으로 바꿉니다.import 'package:flutter/material.dart';
import 'ui_home.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: "Flutter APP",
theme: ThemeData(primarySwatch: Colors.blue),
home:Homepage() ,
);
}
}
2단계 - TextField 위젯 추가
ui_home.dart
디렉토리에 새 다트 파일lib
을 만들고 lib/ui_home.dart
의 내용을 다음 코드 스니펫으로 바꿉니다.import 'package:flutter/material.dart';
class Homepage extends StatefulWidget {
@override
_HomepageState createState() => _HomepageState();
}
class _HomepageState extends State<Homepage> {
TextEditingController textController;
@override
void initState() {
super.initState();
textController = TextEditingController();
}
@override
void dispose() {
super.dispose();
textController.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Flutter APP")),
body: Container(
padding: EdgeInsets.all(10),
child: TextFormField(
controller: textController,
onTap: () {},
decoration: const InputDecoration(
border: OutlineInputBorder(),
labelText:'Start Date',
hintText:"Start Date",
),
),
),
);
}
}
3단계 - 캘린더 기능 만들기
여기에서 원하는 날짜 형식으로 달력 위젯을 표시하는 함수
pickDate
를 만들었습니다.Future pickDate(BuildContext context) async{
final initialDate = DateTime.now();
final newDate = await showDatePicker(
context: context,
initialDate: initialDate,
firstDate: DateTime(DateTime.now().year -5),
lastDate: DateTime(DateTime.now().year + 5)
);
if (newDate == null) return;
setState(() {
textController.text = '${newDate.day}/${newDate.month}/${newDate.year}';
});
}
4단계 - 표시
다음으로 앞서 생성한 textfield 위젯의 onclick 이벤트에
pickdate
함수를 추가했습니다.import 'package:flutter/material.dart';
class Homepage extends StatefulWidget {
@override
_HomepageState createState() => _HomepageState();
}
class _HomepageState extends State<Homepage> {
TextEditingController textController;
@override
void initState() {
super.initState();
textController = TextEditingController();
}
@override
void dispose() {
super.dispose();
textController.dispose();
}
Future pickDate(BuildContext context) async{
final initialDate = DateTime.now();
final newDate = await showDatePicker(
context: context,
initialDate: initialDate,
firstDate: DateTime(DateTime.now().year -5),
lastDate: DateTime(DateTime.now().year + 5)
);
if (newDate == null) return;
setState(() {
textController.text = '${newDate.day}/${newDate.month}/${newDate.year}';
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Flutter APP")),
body: Container(
padding: EdgeInsets.all(10),
child: TextFormField(
controller: textController,
onTap: () {
pickDate(context);
},
decoration: const InputDecoration(
border: OutlineInputBorder(),
labelText:'Start Date',
hintText:"Start Date",
),
),
),
);
}
}
코드를 컴파일하고 에뮬레이터에서 실행합니다.
결론
이 튜토리얼에서 우리는 flutter에서 날짜 선택기 위젯을 구현하는 방법을 보여줄 수 있었습니다. 도움이 되었기를 바랍니다.
Reference
이 문제에 관하여(플러터 날짜 선택기 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kodemetrics/implement-flutter-date-picker-28d0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)