Flutter plugin picker. Include NumberPicker, DateTimePicker, ArrayPicker, and default linkage Picker. Provide flexible parameters to meet various needs. At the same time, you can extend more functions through custom adapters.
Supported Platforms
- Android
- IOS
# add this line to your dependenciesflutter_picker:
git: git://github.com/yangyxd/flutter_picker.gitimport'package:flutter_picker/flutter_picker.dart';showPicker(BuildContext context) {
Picker picker =newPicker(
adapter:PickerDataAdapter<String>(pickerdata:newJsonDecoder().convert(PickerData)),
changeToFirst:true,
textAlign:TextAlign.left,
columnPadding:constEdgeInsets.all(8.0),
onConfirm: (Picker picker, List value) {
print(value.toString());
print(picker.getSelectedValues());
}
);
picker.show(_scaffoldKey.currentState);
}
showPickerModal(BuildContext context) {
newPicker(
adapter:PickerDataAdapter<String>(pickerdata:newJsonDecoder().convert(PickerData)),
changeToFirst:true,
hideHeader:false,
onConfirm: (Picker picker, List value) {
print(value.toString());
print(picker.adapter.text);
}
).showModal(this.context); //_scaffoldKey.currentState);
}
showPickerIcons(BuildContext context) {
newPicker(
adapter:PickerDataAdapter(data: [
newPickerItem(text:Icon(Icons.add), value:Icons.add, children: [
newPickerItem(text:Icon(Icons.more)),
newPickerItem(text:Icon(Icons.aspect_ratio)),
newPickerItem(text:Icon(Icons.android)),
newPickerItem(text:Icon(Icons.menu)),
]),
newPickerItem(text:Icon(Icons.title), value:Icons.title, children: [
newPickerItem(text:Icon(Icons.more_vert)),
newPickerItem(text:Icon(Icons.ac_unit)),
newPickerItem(text:Icon(Icons.access_alarm)),
newPickerItem(text:Icon(Icons.account_balance)),
]),
newPickerItem(text:Icon(Icons.face), value:Icons.face, children: [
newPickerItem(text:Icon(Icons.add_circle_outline)),
newPickerItem(text:Icon(Icons.add_a_photo)),
newPickerItem(text:Icon(Icons.access_time)),
newPickerItem(text:Icon(Icons.adjust)),
]),
newPickerItem(text:Icon(Icons.linear_scale), value:Icons.linear_scale, children: [
newPickerItem(text:Icon(Icons.assistant_photo)),
newPickerItem(text:Icon(Icons.account_balance)),
newPickerItem(text:Icon(Icons.airline_seat_legroom_extra)),
newPickerItem(text:Icon(Icons.airport_shuttle)),
newPickerItem(text:Icon(Icons.settings_bluetooth)),
]),
newPickerItem(text:Icon(Icons.close), value:Icons.close),
]),
title:newText("Select Icon"),
onConfirm: (Picker picker, List value) {
print(value.toString());
print(picker.getSelectedValues());
}
).show(_scaffoldKey.currentState);
}
showPickerDialog(BuildContext context) {
newPicker(
adapter:PickerDataAdapter<String>(pickerdata:newJsonDecoder().convert(PickerData)),
hideHeader:true,
title:newText("Select Data"),
onConfirm: (Picker picker, List value) {
print(value.toString());
print(picker.getSelectedValues());
}
).showDialog(context);
}
showPickerArray(BuildContext context) {
newPicker(
adapter:PickerDataAdapter<String>(pickerdata:newJsonDecoder().convert(PickerData2), isArray:true),
hideHeader:true,
title:newText("Please Select"),
onConfirm: (Picker picker, List value) {
print(value.toString());
print(picker.getSelectedValues());
}
).showDialog(context);
}
showPickerNumber(BuildContext context) {
newPicker(
adapter:NumberPickerAdapter(data: [
NumberPickerColumn(begin:0, end:999),
NumberPickerColumn(begin:100, end:200),
]),
delimiter: [
PickerDelimiter(child:Container(
width:30.0,
alignment:Alignment.center,
child:Icon(Icons.more_vert),
))
],
hideHeader:true,
title:newText("Please Select"),
onConfirm: (Picker picker, List value) {
print(value.toString());
print(picker.getSelectedValues());
}
).showDialog(context);
}
constPickerData2='''[ [ 1, 2, 3, 4 ], [ 11, 22, 33, 44 ], [ "aaa", "bbb", "ccc" ]] ''';constPickerData='''[ { "a": [ { "a1": [ 1, 2, 3, 4 ] }, { "a2": [ 5, 6, 7, 8 ] }, { "a3": [ 9, 10, 11, 12 ] } ] }, { "b": [ { "b1": [ 11, 22, 33, 44 ] }, { "b2": [ 55, 66, 77, 88 ] }, { "b3": [ 99, 1010, 1111, 1212 ] } ] }, { "c": [ { "c1": [ "a", "b", "c" ] }, { "c2": [ "aa", "bb", "cc" ] }, { "c3": [ "aaa", "bbb", "ccc" ] } ] }] ''';