country_picker
A flutter package to select a country from a list of countries.
2.0.28
113K downloads/mo
#1073 most downloaded on pub.dev
Daniel-Ioannou/flutter_country_picker
What this package is like to depend on
Last release 2 months ago
10 Jun 2026
Ships unpredictably
gaps range from 2 weeks to 1.6 years
Nearly every release is documented
notes for 40 of 40 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
40 releases · first in 2020
1 release in the last 12 months
see the full history below
Release timeline
40 releases · Aug 2020 to Jun 2026Releases
latest 40-
2.0.2810 Jun 2026Release notes
Open source →In this version:
- Fixed
getFromPhoneCodefailing when multiple countries share the same phone code. - Fixed incomplete phone prefix.
- Add optional
header. Custom list header above search barshowCountryPicker( context: context, header: Padding( padding: const EdgeInsets.only(top: 10.0, bottom: 10.0, left: 20.0, right: 20.0), child: const Text( 'Select your country', style: TextStyle( fontSize: 22, fontWeight: FontWeight.bold, ), ), ), onSelect: (Country country) { print('Select country: ${country.displayName}'); }, );
- Add an option to show the drag handle
showCountryPicker( context: context, showDragHandle: true, onSelect: (Country country) { print('Select country: ${country.displayName}'); }, );
Release notes
Open source →-
Fixed
getFromPhoneCodefailing when multiple countries share the same phone code. -
Fixed incomplete phone prefix.
-
Add optional
header. Custom list header above search barshowCountryPicker( context: context, header: Padding( padding: const EdgeInsets.only(top: 10.0, bottom: 10.0, left: 20.0, right: 20.0), child: const Text( 'Select your country', style: TextStyle( fontSize: 22, fontWeight: FontWeight.bold, ), ), ), onSelect: (Country country) { print('Select country: ${country.displayName}'); }, ); -
Add an option to show the drag handle
showCountryPicker( context: context, showDragHandle: true, onSelect: (Country country) { print('Select country: ${country.displayName}'); }, );
- Fixed
-
2.0.2710 Nov 2024Release notes
Open source →In this version:
- Add support for Persian (FA) localization
- Add support for Danish (DA) localization
- Fix Ireland in French localization
- Fix East Timor in Arabic localization
- Fix Benin in russian localization
- Change Macedonia's country name to North Macedonia
- Add
findByPhoneCode: Returns a single country if it matches the given phone code.var austria =CountryService().findByPhoneCode("43");
Release notes
Open source →- Add support for Persian (FA) localization
- Add support for Danish (DA) localization
- Fix Ireland in French localization
- Fix East Timor in Arabic localization
- Fix Benin in russian localization
- Change Macedonia's country name to North Macedonia
- Add
findByPhoneCode: Returns a single country if it matches the given phone code.var austria =CountryService().findByPhoneCode("43");
-
2.0.2612 May 2024Release notes
Open source →In this version:
- Fix Turkish localization
- Add
moveAlongWithKeyboard: An optionalargument can be used to move bottomSheet along with keyboard when textfield is focused. It could be useful when bottomSheet height is smaller than half of the screen. Otherwise it shouldn't be set. It has a default value of false.showCountryPicker( context: context, moveAlongWithKeyboard: true, countryListTheme: CountryListThemeData( bottomSheetHeight: 500, ), onSelect: (Country country) => print('Select country: ${country.displayName}'), );
Release notes
Open source →- Fix Turkish localization
- Add
moveAlongWithKeyboard: An optionalargument can be used to move bottomSheet along with keyboard when textfield is focused. It could be useful when bottomSheet height is smaller than half of the screen. Otherwise it shouldn't be set. It has a default value of false.showCountryPicker( context: context, moveAlongWithKeyboard: true, countryListTheme: CountryListThemeData( bottomSheetHeight: 500, ), onSelect: (Country country) => print('Select country: ${country.displayName}'), );
- Add
-
2.0.2527 Feb 2024Release notes
Open source →In this version:
- Add support for Haitian Creole (HT) localization
- Add support for Slovak (SK) localization
- Add support for Bulgarian (BG) localization
- Add support for Romanian (RO) localization
- Add support for Catala (CA) localization
- Add support for Hebrew (HE) localization
Release notes
Open source →- Add support for Haitian Creole (HT) localization
- Add support for Slovak (SK) localization
- Add support for Bulgarian (BG) localization
- Add support for Romanian (RO) localization
- Add support for Catala (CA) localization
- Add support for Hebrew (HE) localization
-
2.0.2429 Jan 2024Release notes
Open source →In this version:
- Add option for bottom sheet Width.
showCountryPicker( context: context, countryListTheme: CountryListThemeData( bottomSheetWidth: 500, // Optional. Country list modal Width ), onSelect: (Country country) => print('Select country: ${country.displayName}'), );
- Add
emojiFontFamilyFallback
- Add
Release notes
Open source →- Add option for bottom sheet Width.
showCountryPicker( context: context, countryListTheme: CountryListThemeData( bottomSheetWidth: 500, // Optional. Country list modal Width ), onSelect: (Country country) => print('Select country: ${country.displayName}'), );- Add
emojiFontFamilyFallback
- Add
- Add option for bottom sheet Width.
-
2.0.2302 Dec 2023Release notes
Open source →In this version:
- Export
CustomFlagBuilder - Add parameter
useRootNavigator
- Export
-
2.0.2230 Oct 2023 -
2.0.2103 Sep 2023Release notes
Open source →In this version:
- Add support for Korean localization
- Add support for Japanese localization
- Add support for Indonesian localization
- Fix Windows and web flag
Release notes
Open source →- Add support for Korean localization
- Add support for Japanese localization
- Add support for Indonesian localization
- Fix Windows and web flag
-
2.0.2004 Mar 2023Release notes
Open source →In this version:
- Add support for Italian localization
- Fix French Translations
- UI filling fix
Release notes
Open source →- Add support for Italian localization
- Fix French Translations
- UI filling fix
-
2.0.1917 Dec 2022Release notes
Open source →In this version:
- Add support for Dutch localization
- Add
parsePhoneCodeandtryParsePhoneCode
Release notes
Open source →- Add support for Dutch localization
- Add
parsePhoneCodeandtryParsePhoneCode
- Add
-
2.0.1802 Dec 2022Release notes
Open source →- Fix Hindi Translations
- Removed old country codes for Kosovo (+381 & +386)
- Fix Hindi Translations
-
2.0.1708 Nov 2022Release notes
Open source →- Add option to hide search bar
showCountryPicker( context: context, showSearch: false, onSelect: (Country country) => print('Select country: ${country.displayName}'), );- Add
searchTextStyleshowCountryPicker( context: context, countryListTheme: CountryListThemeData( searchTextStyle: TextStyle( // Optional. Styles the text in the search field color: Colors.blue, fontSize: 18, ), ), onSelect: (Country country) => print('Select country: ${country.displayName}'), ); - Removed the need of
worldwide.pngand changed to '🌍' emoji
- Add
- Add option to hide search bar
-
2.0.1624 Aug 2022Release notes
Open source →- Add support for Latvian localization
- Add support for Lithuanian localization
- Add support for Latvian localization
-
2.0.1502 May 2022Release notes
Open source →- Add support for German localization
- Add
favoriteoption.- Can be used to to show the favorite countries at the top of the list.
- It takes a list of country code(iso2).
showCountryPicker( context: context, favorite: <String>['SE', 'MC'], onSelect: (Country country) { print('Select country: ${country.displayName}'); }, );
- Implemented Country Service
- package assets
- Add
- Add support for German localization
-
2.0.1411 Apr 2022 -
2.0.1305 Apr 2022Release notes
Open source →- Add getter for flag emoji in
Countrymodel- Add option for bottom sheet height.
showCountryPicker( context: context, countryListTheme: CountryListThemeData( bottomSheetHeight: 500, // Optional. Country list modal height ), onSelect: (Country country) => print('Select country: ${country.displayName}'), );
- Add option for bottom sheet height.
- Add getter for flag emoji in
-
2.0.1228 Feb 2022 -
2.0.1101 Feb 2022Release notes
Open source →- Eswatini name
- Italy code at Turkish localization
- Add optional argument for showing "World Wide" option at the beginning of the list
showCountryPicker( context: context, showWorldWide: true, onSelect: (Country country) => print('Select country: ${country.displayName}'), );
-
2.0.1019 Jan 2022Release notes
Open source →- Add support for French localization
- Add support for Kurdish localization
- Add support for French localization
-
2.0.922 Nov 2021 -
2.0.813 Sep 2021Release notes
Open source →- Add support for Arabic localization
- Add support for Croatian localization
- Add options to autofocus at search TextField.
showCountryPicker( context: context, searchAutofocus: true, onSelect: (Country country) => print('Select country: ${country.displayName}'), );
- Add support for Arabic localization
-
2.0.728 Jul 2021 -
2.0.602 Jul 2021 -
2.0.531 May 2021Release notes
Open source →- Add styling options for the border-radius and the search field.
showCountryPicker( context: context, countryListTheme: CountryListThemeData( // Optional. Sets the border radius for the bottomsheet. borderRadius: BorderRadius.only( topLeft: Radius.circular(40.0), topRight: Radius.circular(40.0), ), // Optional. Styles the search field. inputDecoration: InputDecoration( labelText: 'Search', hintText: 'Start typing to search', preIcon: const Icon(Icons.search), border: OutlineInputBorder( borderSide: BorderSide( color: const Color(0xFF8C98A8).withOpacity(0.2), ), ), ), ), onSelect: (Country country) => print('Select country: ${country.displayName}'), );
- Add styling options for the border-radius and the search field.
-
2.0.412 Apr 2021 -
2.0.330 Mar 2021 -
2.0.223 Mar 2021 -
2.0.115 Mar 2021Release notes
Open source →- Implemented country list theme
showCountryPicker( context: context, countryListTheme: CountryListThemeData( flagSize: 25, backgroundColor: Colors.white, textStyle: TextStyle(fontSize: 16, color: Colors.blueGrey), ), onSelect: (Country country) => print('Select country: ${country.displayName}'), );
- Implemented country list theme
-
2.0.009 Mar 2021 -
1.1.418 Feb 2021Release notes
Open source →- Add support for Spanish and Portuguese localization.
- If
showPhoneCodeis false remove duplicates country
- If
- Add support for Spanish and Portuguese localization.
-
1.1.310 Dec 2020 -
1.1.211 Oct 2020Release notes
Open source →- Add support for Greek localization.
- At search change contains to startsWith.
- Add country filter option.
- Can be used to uses filter the countries list (optional).
- It takes a list of country code(iso2).
- Can't provide both exclude and countryFilter
showCountryPicker( context: context, countryFilter: <String>['AT', 'GB', 'DK', 'DE', 'FR', 'GR'], //It takes a list of country code(iso2). onSelect: (Country country) => print('Select country: ${country.displayName}'), );
- Add support for Greek localization.
-
1.1.124 Sep 2020 -
1.1.019 Sep 2020Release notes
Open source →Implement localization.
Add the
CountryLocalizations.delegatein the list of your app delegates.MaterialApp( supportedLocales: [ const Locale('en'), const Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hans'), // Generic Simplified Chinese 'zh_Hans' const Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hant'), // Generic traditional Chinese 'zh_Hant' ], localizationsDelegates: [ CountryLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], home: HomePage(), );Supported languages:
- English
- Simplified Chinese
- Traditional Chinese
-
1.0.531 Aug 2020 -
1.0.427 Aug 2020 -
1.0.322 Aug 2020 -
1.0.218 Aug 2020Release notes
Open source →- Add exclude countries option.
Can be used to exclude(remove) one ore more country from the countries listshowCountryPicker( context: context, exclude: <String>['KN', 'MF'], //It takes a list of country code(iso2). onSelect: (Country country) => print('Select country: ${country.displayName}'), );
- Add exclude countries option.
-
1.0.112 Aug 2020 -
1.0.011 Aug 2020