A Flutter package for selecting country codes from a list. It offers multiple modes for the country code picker and supports the locale of the current device in 70 different languages.
For Country picker dialog
final country= await CountryPicker.showCountryPickerDialog(context: context);For Country picker bottom sheet
final country= await CountryPicker.showCountryPickerBottomSheet(context: context);For Country picker cupertino bottom sheet
final country = await CountryPicker.showCountryPickerCupertinoBottomSheet(context: context);For the Country picker dropdown
CountryPickerDropDown(
onSelectValue: (CountryData value) {
debugPrint('CountryPickerDropDown ::${value.name}');
},
);get the initial country with CountryPicker.getCountryData.
CountryPicker.getCountryData(context: context,code: "+1"); Add the CountryPickerLocalizations.delegate to the list of your app delegates.
return MaterialApp(
supportedLocales: [
Locale("hi"),
Locale("tk"),
Locale("uk"),
...
...
...
Locale("zh")
],
localizationsDelegates: [
CountryPickerLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
);The CountryPicker class encapsulates all functionalities of this package. Utilize these optional properties to customize the appearance and view of the picker according to your preferences.
| Fields | Type | Description |
|---|---|---|
| context | BuildContext |
A handle to the location of a widget in the widget tree Required. |
| favouriteCountries | List<String>? |
favouriteCountries will be placed on the top of list. |
| barrierColor | Color? |
barrierColor that covers the screen behind a modal or overlay widget. |
| isDismissible | bool? |
isDismissible determines whether the widget can be dismissed or closed by tapping outside of it. |
| backgroundColor | Color? |
backgroundColor is a property to set the background color of the country picker widget. |
| useSafeArea | bool? |
useSafeArea is for visible/avoids overlapping with system UI elements. |
LayoutConfig and SearchStyle models are used to configure the layout and styling of the interface.
| Fields | Type | Description |
|---|---|---|
| textStyle | TextStyle? |
to set the Style for country list elements. |
| elementsSequence | Sequence |
To set the Sequence of countries elements by default it is Sequence.codeCountryNameAndFlag. |
| flagWidth | bool |
set width of the flag by default is 24. |
| flagHeight | bool |
set height of the flag by default is 18. |
| flagDecoration | Decoration? |
set decoration of the flag. |
| showCountryName | bool |
show/hide country name by default is true. |
| showCountryFlag | bool |
show/hide country flag by default it's true. |
| showCountryCode | bool |
show/hide country code by default it's true. |
| searchFieldInputDecoration | InputDecoration? |
to decorate or customize the country flag. |
| searchFieldInputDecoration | InputDecoration? |
to decorate or customize the country flag. |
| hintText | String? |
give the hint in searchBar. |
| searchBoxHeight | double? |
set the height of search bar. |
| searchBoxHeight | double? |
set the height of search bar. |
| searchBoxMargin | EdgeInsetsGeometry? |
set the margin of SearchBox. |
CountryListConfig model is used to manipulate the country list.
| Fields | Type | Description |
|---|---|---|
| countryFilter | List<String>? |
Provide the list of countries country code to show the list of countries in Country picker. |
| comparator | Comparator<CountryData>? |
comparator is used to change the order of country list. |
| excludeCountry | List<String>?? |
remove particular countries from our list. |
Contribution towards our repository is always welcome, we request contributors to create a pull request to the develop branch only.
It would be great for us if the reporter could share the below things to understand the root cause of the issue.
- Library version
- Code snippet
- Logs if applicable
- Device specification like (Manufacturer, OS version, etc)
- Screenshot/video with steps to reproduce the issue
mi_country_picker is MIT-licensed.
We’d be really happy if you send us links to your projects where you use our component. Just send an email to [email protected] And do let us know if you have any questions or suggestions regarding our work.




