A new country picker Flutter package built in Dart.
It is Flutter plug-n-play country picker package.
- Simple two lines of code. Initialize and Launch.
CountryPicker countryPicker = CountryPicker(
onCountrySelected:(country){
print(country);
},
);
countryPicker.launch(context)
https://pub.dev/packages/ola_like_country_picker#-installing-tab-
- To use the Country Picker look at the example below :
class _MyHomePageState extends State<MyHomePage> {
CountryPicker countryPicker;
Country country = Country.fromJson(countryCodes[0]); // select initial country
@override
void initState() {
super.initState();
countryPicker = CountryPicker(onCountrySelected: (Country country) {
print(country);
setState(() {
this.country = country;
});
});
}
@override
Widget build(BuildContext context) {
// To simply launch the country picker
// use countryPicker.launch(context)
// to forcefully dismiss use countryPicker.dismiss()
// simple example could be
return GestureDetector(
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
image:
AssetImage(country.flagUri, package: 'ola_like_country_picker'),
),
),
),
onTap: () {
countryPicker.launch(context);
},
);
}
}
parameter | default | required | type | remark |
---|---|---|---|---|
onCountrySelected | null | yes | OnCountrySelectedCallback | called when country is selected. |
showTitle | true | no | bool | whether to show title or not. |
titleText | "Select your country" | no | String | text for title. |
- To simply use country list view any where use CountryListView() and to modify attributes like flagWidth, flagHeight, countryTitle style etc use below arguments like
CountryListView(flagWidth:50, flagHeight:50 , itemTitleStyle: TextStyle(fontSize:20));
return MaterialApp(
theme: ThemeData(primarySwatch: Colors.purple),
home: Scaffold(
appBar: AppBar(
title: Text('Select Country'),
),
body: CountryListView(),
),
);
parameter | default | required | type | remark |
---|---|---|---|---|
countryJsonList | country_codes | no | List<Map<String, String>> | can be used to specify own set of sublist of countries from the variable country_codes |
flagWidth | 25 | no | double | width of flag |
flagHeight | 25 | no | double | height of flag |
showFlag | true | no | bool | whether to show flag or not |
showDialCode | true | no | bool | whether to show dial code or not |
dialCodePrefix | '+' | no | String | The prefix added to the dial code for e.g +91 here prefix is '+' |
itemTitleStyle | null | no | TextStyle | Used to change style of Country title e.g TextStyle(fontSize:30) |
dialCodeStyle | null | no | TextStyle | Used to change style of Country's dial code e.g TextStyle(backgroundColor:Colors.green[400]) |
onSelected | null | no | OnCountrySelectedCallback | When Any Country is selected what callback has to be executed e.g CountryListView(onSelected: (Country country){ print(country.toString() }); |
- To use the own version of CountryListView() with CountryPicker() use setCountryListView() method before calling launch() e.g.
c = CountryPicker(onCountrySelected: (Country country) {
print(country);
setState(() {
this.country = country;
});
});
CountryListView clv = CountryListView(showFlag:false); //own version of CountryListView
c.setCountryListView(clv);
...
...
// Call c.launch(context) in GestureDetector() or other listeners
...
...
The simplest way to show your support is by giving the project a star.
You can also support by becoming a patron on Patreon:
Or by making a single donation by buying a coffee: