173 lines
5.1 KiB
Dart
173 lines
5.1 KiB
Dart
import 'package:country_code_picker/country_code_picker.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
|
|
|
void main() => runApp(const MyApp());
|
|
|
|
class MyApp extends StatefulWidget {
|
|
const MyApp({super.key});
|
|
|
|
@override
|
|
MyAppState createState() => MyAppState();
|
|
}
|
|
|
|
class MyAppState extends State<MyApp> {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
supportedLocales: const [
|
|
Locale("af"),
|
|
Locale("am"),
|
|
Locale("ar"),
|
|
Locale("az"),
|
|
Locale("be"),
|
|
Locale("bg"),
|
|
Locale("bn"),
|
|
Locale("bs"),
|
|
Locale("ca"),
|
|
Locale("cs"),
|
|
Locale("da"),
|
|
Locale("de"),
|
|
Locale("el"),
|
|
Locale("en"),
|
|
Locale("es"),
|
|
Locale("et"),
|
|
Locale("fa"),
|
|
Locale("fi"),
|
|
Locale("fr"),
|
|
Locale("gl"),
|
|
Locale("ha"),
|
|
Locale("he"),
|
|
Locale("hi"),
|
|
Locale("hr"),
|
|
Locale("hu"),
|
|
Locale("hy"),
|
|
Locale("id"),
|
|
Locale("is"),
|
|
Locale("it"),
|
|
Locale("ja"),
|
|
Locale("ka"),
|
|
Locale("kk"),
|
|
Locale("km"),
|
|
Locale("ko"),
|
|
Locale("ku"),
|
|
Locale("ky"),
|
|
Locale("lt"),
|
|
Locale("lv"),
|
|
Locale("mk"),
|
|
Locale("ml"),
|
|
Locale("mn"),
|
|
Locale("ms"),
|
|
Locale("nb"),
|
|
Locale("nl"),
|
|
Locale("nn"),
|
|
Locale("no"),
|
|
Locale("pl"),
|
|
Locale("ps"),
|
|
Locale("pt"),
|
|
Locale("ro"),
|
|
Locale("ru"),
|
|
Locale("sd"),
|
|
Locale("sk"),
|
|
Locale("sl"),
|
|
Locale("so"),
|
|
Locale("sq"),
|
|
Locale("sr"),
|
|
Locale("sv"),
|
|
Locale("ta"),
|
|
Locale("tg"),
|
|
Locale("th"),
|
|
Locale("tk"),
|
|
Locale("tr"),
|
|
Locale("tt"),
|
|
Locale("uk"),
|
|
Locale("ug"),
|
|
Locale("ur"),
|
|
Locale("uz"),
|
|
Locale("vi"),
|
|
Locale("zh")
|
|
],
|
|
localizationsDelegates: const [
|
|
CountryLocalizations.delegate,
|
|
GlobalMaterialLocalizations.delegate,
|
|
GlobalWidgetsLocalizations.delegate,
|
|
],
|
|
home: Scaffold(
|
|
appBar: AppBar(
|
|
title: const Text('CountryPicker Example'),
|
|
),
|
|
body: Center(
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
|
children: <Widget>[
|
|
CountryCodePicker(
|
|
onChanged: print,
|
|
// Initial selection and favorite can be one of code ('IT') OR dial_code('+39')
|
|
initialSelection: 'IT',
|
|
favorite: const ['+39', 'FR'],
|
|
countryFilter: const ['IT', 'FR'],
|
|
showFlagDialog: false,
|
|
//You can set the margin between the flag and the country name to your taste.
|
|
margin: const EdgeInsets.symmetric(horizontal: 6),
|
|
comparator: (a, b) => b.name!.compareTo(a.name!),
|
|
//Get the country information relevant to the initial selection
|
|
onInit: (code) => debugPrint(
|
|
"on init ${code?.name} ${code?.dialCode} ${code?.name}"),
|
|
),
|
|
CountryCodePicker(
|
|
onChanged: print,
|
|
// Initial selection and favorite can be one of code ('IT') OR dial_code('+39')
|
|
initialSelection: 'IT',
|
|
favorite: const ['+39', 'FR'],
|
|
countryFilter: const ['IT', 'FR'],
|
|
// flag can be styled with BoxDecoration's `borderRadius` and `shape` fields
|
|
flagDecoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(7),
|
|
),
|
|
),
|
|
const SizedBox(
|
|
width: 400,
|
|
height: 60,
|
|
child: CountryCodePicker(
|
|
onChanged: print,
|
|
hideMainText: true,
|
|
showFlagMain: true,
|
|
showFlag: false,
|
|
initialSelection: 'TF',
|
|
hideSearch: true,
|
|
showCountryOnly: true,
|
|
showOnlyCountryWhenClosed: true,
|
|
alignLeft: true,
|
|
),
|
|
),
|
|
SizedBox(
|
|
width: 400,
|
|
height: 60,
|
|
child: CountryCodePicker(
|
|
onChanged: (element) => debugPrint(element.toLongString()),
|
|
initialSelection: 'TF',
|
|
showCountryOnly: true,
|
|
showOnlyCountryWhenClosed: true,
|
|
favorite: const ['+39', 'FR'],
|
|
),
|
|
),
|
|
SizedBox(
|
|
width: 100,
|
|
height: 60,
|
|
child: CountryCodePicker(
|
|
enabled: false,
|
|
onChanged: (c) => c.name,
|
|
initialSelection: 'TF',
|
|
showCountryOnly: true,
|
|
showOnlyCountryWhenClosed: true,
|
|
favorite: const ['+39', 'FR'],
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|