Add option to show country name only in dialog
This commit is contained in:
@@ -24,6 +24,7 @@ class _MyAppState extends State<MyApp> {
|
||||
body: new Center(
|
||||
child: new CountryCodePicker(
|
||||
onChanged: print,
|
||||
showCountryOnly: true,
|
||||
// Initial selection and favorite can be one of code ('IT') OR dial_code('+39')
|
||||
initialSelection: 'IT',
|
||||
favorite: ['+39', 'FR']),
|
||||
|
||||
@@ -23,4 +23,6 @@ class CountryCode {
|
||||
String toString() => "$dialCode";
|
||||
|
||||
String toLongString() => "$dialCode $name";
|
||||
|
||||
String toCountryStringOnly() => '$name';
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
library country_code_picker;
|
||||
|
||||
import 'package:country_code_picker/country_code.dart';
|
||||
@@ -13,6 +14,7 @@ class CountryCodePicker extends StatefulWidget {
|
||||
final List<String> favorite;
|
||||
final TextStyle textStyle;
|
||||
final EdgeInsetsGeometry padding;
|
||||
final bool showCountryOnly;
|
||||
|
||||
CountryCodePicker({
|
||||
this.onChanged,
|
||||
@@ -20,6 +22,7 @@ class CountryCodePicker extends StatefulWidget {
|
||||
this.favorite = const [],
|
||||
this.textStyle,
|
||||
this.padding = const EdgeInsets.all(0.0),
|
||||
this.showCountryOnly = false,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -103,7 +106,7 @@ class _CountryCodePickerState extends State<CountryCodePicker> {
|
||||
void _showSelectionDialog() {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (_) => new SelectionDialog(elements, favoriteElements),
|
||||
builder: (_) => new SelectionDialog(elements, favoriteElements, showCountryOnly: widget.showCountryOnly),
|
||||
).then((e) {
|
||||
if (e != null) {
|
||||
setState(() {
|
||||
|
||||
@@ -4,11 +4,13 @@ import 'package:flutter/material.dart';
|
||||
/// selection dialog used for selection of the country code
|
||||
class SelectionDialog extends StatefulWidget {
|
||||
final List<CountryCode> elements;
|
||||
bool showCountryOnly;
|
||||
|
||||
/// elements passed as favorite
|
||||
final List<CountryCode> favoriteElements;
|
||||
|
||||
SelectionDialog(this.elements, this.favoriteElements);
|
||||
SelectionDialog(this.elements, this.favoriteElements,
|
||||
{this.showCountryOnly});
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() => new _SelectionDialogState();
|
||||
@@ -54,7 +56,9 @@ class _SelectionDialogState extends State<SelectionDialog> {
|
||||
Flexible(
|
||||
fit: FlexFit.tight,
|
||||
child: new Text(
|
||||
f.toLongString(),
|
||||
widget.showCountryOnly
|
||||
? f.toCountryStringOnly()
|
||||
: f.toLongString(),
|
||||
overflow: TextOverflow.fade,
|
||||
),
|
||||
),
|
||||
@@ -87,7 +91,9 @@ class _SelectionDialogState extends State<SelectionDialog> {
|
||||
Flexible(
|
||||
fit: FlexFit.tight,
|
||||
child: Text(
|
||||
e.toLongString(),
|
||||
widget.showCountryOnly
|
||||
? e.toCountryStringOnly()
|
||||
: e.toLongString(),
|
||||
overflow: TextOverflow.fade,
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user