flutter_picker 1.0.11

  • README.md
  • CHANGELOG.md
  • Example
  • Installing
  • Versions
  • 97

flutter_picker #

pub package GitHub GitHub stars

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

image

How to Use #

# add this line to your dependencies
flutter_picker:
  git: git://github.com/yangyxd/flutter_picker.git
import 'package:flutter_picker/flutter_picker.dart';

    showPicker(BuildContext context) {
      Picker picker = new Picker(
        adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().convert(PickerData)),
        changeToFirst: true,
        textAlign: TextAlign.left,
        columnPadding: const EdgeInsets.all(8.0),
        onConfirm: (Picker picker, List value) {
          print(value.toString());
          print(picker.getSelectedValues());
        }
      );
      picker.show(_scaffoldKey.currentState);
    }

    showPickerModal(BuildContext context) {
      new Picker(
        adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().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) {
      new Picker(
        adapter: PickerDataAdapter(data: [
          new PickerItem(text: Icon(Icons.add), value: Icons.add, children: [
            new PickerItem(text: Icon(Icons.more)),
            new PickerItem(text: Icon(Icons.aspect_ratio)),
            new PickerItem(text: Icon(Icons.android)),
            new PickerItem(text: Icon(Icons.menu)),
          ]),
          new PickerItem(text: Icon(Icons.title), value: Icons.title, children: [
            new PickerItem(text: Icon(Icons.more_vert)),
            new PickerItem(text: Icon(Icons.ac_unit)),
            new PickerItem(text: Icon(Icons.access_alarm)),
            new PickerItem(text: Icon(Icons.account_balance)),
          ]),
          new PickerItem(text: Icon(Icons.face), value: Icons.face, children: [
            new PickerItem(text: Icon(Icons.add_circle_outline)),
            new PickerItem(text: Icon(Icons.add_a_photo)),
            new PickerItem(text: Icon(Icons.access_time)),
            new PickerItem(text: Icon(Icons.adjust)),
          ]),
          new PickerItem(text: Icon(Icons.linear_scale), value: Icons.linear_scale, children: [
            new PickerItem(text: Icon(Icons.assistant_photo)),
            new PickerItem(text: Icon(Icons.account_balance)),
            new PickerItem(text: Icon(Icons.airline_seat_legroom_extra)),
            new PickerItem(text: Icon(Icons.airport_shuttle)),
            new PickerItem(text: Icon(Icons.settings_bluetooth)),
          ]),
          new PickerItem(text: Icon(Icons.close), value: Icons.close),
        ]),
        title: new Text("Select Icon"),
        onConfirm: (Picker picker, List value) {
          print(value.toString());
          print(picker.getSelectedValues());
        }
    ).show(_scaffoldKey.currentState);
  }

  showPickerDialog(BuildContext context) {
    new Picker(
        adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().convert(PickerData)),
        hideHeader: true,
        title: new Text("Select Data"),
        onConfirm: (Picker picker, List value) {
          print(value.toString());
          print(picker.getSelectedValues());
        }
    ).showDialog(context);
  }

  showPickerArray(BuildContext context) {
    new Picker(
        adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().convert(PickerData2), isArray: true),
        hideHeader: true,
        title: new Text("Please Select"),
        onConfirm: (Picker picker, List value) {
          print(value.toString());
          print(picker.getSelectedValues());
        }
    ).showDialog(context);
  }

  showPickerNumber(BuildContext context) {
    new Picker(
        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: new Text("Please Select"),
        onConfirm: (Picker picker, List value) {
          print(value.toString());
          print(picker.getSelectedValues());
        }
    ).showDialog(context);
  }

PickerData Example #

Array #


const PickerData2 = '''
[
    [
        1,
        2,
        3,
        4
    ],
    [
        11,
        22,
        33,
        44
    ],
    [
        "aaa",
        "bbb",
        "ccc"
    ]
]
    ''';

Linkage #

const PickerData = '''
[
    {
        "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"
                ]
            }
        ]
    }
]
    ''';

1.0.11 #

  • Add localization for Arabic language
  • Add parameter: cancel and confirm, Allow yourself to specify widgets to be placed in the identified and cancelled locations
  • DateTimePickerAdapter supports minValue and maxValue, which are used to limit the upper and lower bounds for selecting date and time.

1.0.10 #

  • Solving #25 Problem
  • Add attributes: headerDecoration, Can be used to control header borders.
  • Add Italian locale.

1.0.9 #

  • Add the ability to jump numbers in NumberPickerColumn (thank: @jesusrp98)

1.0.8 #

  • Repair Bug: showDialog

1.0.7 #

  • Add korea locale

1.0.6 #

  • Remove debugging output information

1.0.5 #

  • Modifying description information

1.0.3 #

  • Repair Bug.
  • NumberPickerAdapter, data Add onFormatValue property
  • DateTimePickerAdapter, Add customColumnType property, Support custom column order.

1.0.2 #

  • Repair Bug.

1.0.1 #

  • NumberPickerAdapter Support postfix; suffix.

1.0.0 #

  • Add NumberPickerAdapter, Support specified number range
  • Add isLinkage property, Support Array.
  • Add delimiter, Insert separators between columns
  • Add localization support
  • Optimization code

0.0.5 #

  • Adapter add notifyDataChanged function.

0.0.4 #

  • Add PickerDateTimeType.kYM.

0.0.3 #

  • Support column Flex setting. Add new DateTimeAdapter type.

0.0.2 #

  • Code refactoring, adding adapters. Support dialog box. Increase the date and time selection.

0.0.1 #

  • Describe initial release.

example/README.md

flutter_picker_example #

Demonstrates how to use the flutter_picker plugin.

Getting Started #

For help getting started with Flutter, view our online documentation.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  flutter_picker: ^1.0.11

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:flutter_picker/flutter_picker.dart';
  
Version Uploaded Documentation Archive
1.0.11 Apr 29, 2019 Go to the documentation of flutter_picker 1.0.11 Download flutter_picker 1.0.11 archive
1.0.10 Mar 25, 2019 Go to the documentation of flutter_picker 1.0.10 Download flutter_picker 1.0.10 archive
1.0.9 Mar 14, 2019 Go to the documentation of flutter_picker 1.0.9 Download flutter_picker 1.0.9 archive
1.0.8 Mar 6, 2019 Go to the documentation of flutter_picker 1.0.8 Download flutter_picker 1.0.8 archive
1.0.7 Jan 29, 2019 Go to the documentation of flutter_picker 1.0.7 Download flutter_picker 1.0.7 archive
1.0.6 Jan 10, 2019 Go to the documentation of flutter_picker 1.0.6 Download flutter_picker 1.0.6 archive
1.0.5 Dec 5, 2018 Go to the documentation of flutter_picker 1.0.5 Download flutter_picker 1.0.5 archive
1.0.4 Dec 5, 2018 Go to the documentation of flutter_picker 1.0.4 Download flutter_picker 1.0.4 archive
1.0.3 Nov 15, 2018 Go to the documentation of flutter_picker 1.0.3 Download flutter_picker 1.0.3 archive
1.0.2 Sep 20, 2018 Go to the documentation of flutter_picker 1.0.2 Download flutter_picker 1.0.2 archive

All 18 versions...

Popularity:
Describes how popular the package is relative to other packages. [more]
95
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
97
Learn more about scoring.

We analyzed this package on Jun 12, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.3.1
  • pana: 0.12.17
  • Flutter: 1.5.4-hotfix.2

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Health suggestions

Fix lib/Picker.dart. (-0.50 points)

Analysis of lib/Picker.dart reported 1 hint:

line 3 col 8: Don't import implementation files from another package.

Format lib/PickerLocalizationsDelegate.dart.

Run flutter format to format lib/PickerLocalizationsDelegate.dart.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev.28.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11
meta 1.1.6 1.1.7
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8