Add option to show country name only in dialog

This commit is contained in:
herovickers
2019-03-14 22:47:15 +01:00
parent 58c23c9b09
commit b1386b2a8b
4 changed files with 16 additions and 4 deletions

View File

@@ -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']),

View File

@@ -23,4 +23,6 @@ class CountryCode {
String toString() => "$dialCode";
String toLongString() => "$dialCode $name";
String toCountryStringOnly() => '$name';
}

View File

@@ -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(() {

View File

@@ -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,
),
),