Skip to main content

Picker

1. Date Picker

DateTime now = DateTime.now();
showDatePicker(
context: context,
initialDate: now,
firstDate: DateTime(2020),
lastDate: DateTime(now.year + 1),
).then((value) {
print('datePicked: ${value?.toIso8601String()}');
});

altalt

2. Date Range Picker

Sama seperti Text Field namun dengan tambahan beberapa property seperti validator yang dikombinasikan dengan widget Form.

DateTime now = DateTime.now();
showDateRangePicker(
context: context,
firstDate: DateTime(2020),
lastDate: DateTime(now.year + 1),
initialDateRange: DateTimeRange(
start: now.subtract(const Duration(days: 3)),
end: now,
),
).then((value) {
print('duration: ${value?.duration.inDays} days');
print('start: ${value?.start.toIso8601String()}');
print('end: ${value?.end.toIso8601String()}');
});

altalt

3. Time Picker

DateTime now = DateTime.now();
showTimePicker(
context: context,
initialTime: TimeOfDay.fromDateTime(now),
).then((value) {
print('timePicked: ${value?.toString()}');
});

altalt

alt

4. Image Picker

Tambahkan package image_picker di pubspec.yaml. Karena cara penggunaan setiap versi kemungkinan berbeda, silahkan cek ke Doc: image_picker | Flutter Package (pub.dev).

alt

  • setup iOS

alt

  • setup Android

alt

alt

pickImage(ImageSource source) async {
XFile? xFile = await ImagePicker().pickImage(source: source);
if (xFile == null) {
print('cancel pick');
return;
}

print('''
Mime type: ${xFile.mimeType}
Name: ${xFile.name}
Path: ${xFile.path}
Last modified: ${(await xFile.lastModified()).toIso8601String()}
''');
}
GalleryCamera
altalt

alt

5. File Picker

Untuk setup seperti Image Picker diatas. Namun disini akan dicontohkan untuk custom picker, dengan format file berupa document biasanya. Karena cara penggunaan setiap versi kemungkinan berbeda, silahkan cek ke Doc: file_picker | Flutter Package (pub.dev)

pickFile() async {
FilePickerResult? result = await FilePicker.platform.pickFiles(
type: FileType.custom,
allowedExtensions: ['txt', 'pdf', 'doc', 'docx'],
);

if (result != null) {
PlatformFile file = result.files.first;

print(file.name);
print(file.bytes);
print(file.size);
print(file.extension);
print(file.path);
} else {
print('User canceled the picker');
}
}

alt

alt