refactored selectiondialog _buildoption
OnlyCountrymode now also displays only country when closed width doesn't change on search
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
library country_code_picker;
|
||||
|
||||
import 'package:country_code_picker/country_code.dart';
|
||||
@@ -67,7 +66,9 @@ class _CountryCodePickerState extends State<CountryCodePicker> {
|
||||
),
|
||||
Flexible(
|
||||
child: Text(
|
||||
selectedItem.toString(),
|
||||
widget.showCountryOnly
|
||||
? selectedItem.toCountryStringOnly()
|
||||
: selectedItem.toString(),
|
||||
style: widget.textStyle ?? Theme.of(context).textTheme.button,
|
||||
),
|
||||
),
|
||||
@@ -106,7 +107,8 @@ class _CountryCodePickerState extends State<CountryCodePicker> {
|
||||
void _showSelectionDialog() {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (_) => new SelectionDialog(elements, favoriteElements, showCountryOnly: widget.showCountryOnly),
|
||||
builder: (_) => new SelectionDialog(elements, favoriteElements,
|
||||
showCountryOnly: widget.showCountryOnly),
|
||||
).then((e) {
|
||||
if (e != null) {
|
||||
setState(() {
|
||||
|
||||
@@ -4,13 +4,12 @@ import 'package:flutter/material.dart';
|
||||
/// selection dialog used for selection of the country code
|
||||
class SelectionDialog extends StatefulWidget {
|
||||
final List<CountryCode> elements;
|
||||
bool showCountryOnly;
|
||||
final bool showCountryOnly;
|
||||
|
||||
/// elements passed as favorite
|
||||
final List<CountryCode> favoriteElements;
|
||||
|
||||
SelectionDialog(this.elements, this.favoriteElements,
|
||||
{this.showCountryOnly});
|
||||
SelectionDialog(this.elements, this.favoriteElements, {this.showCountryOnly});
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() => new _SelectionDialogState();
|
||||
@@ -39,31 +38,7 @@ class _SelectionDialogState extends State<SelectionDialog> {
|
||||
..addAll(widget.favoriteElements
|
||||
.map(
|
||||
(f) => new SimpleDialogOption(
|
||||
child: Flex(
|
||||
direction: Axis.horizontal,
|
||||
children: <Widget>[
|
||||
Flexible(
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.only(right: 16.0),
|
||||
child: Image.asset(
|
||||
f.flagUri,
|
||||
package: 'country_code_picker',
|
||||
width: 32.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
fit: FlexFit.tight,
|
||||
child: new Text(
|
||||
widget.showCountryOnly
|
||||
? f.toCountryStringOnly()
|
||||
: f.toLongString(),
|
||||
overflow: TextOverflow.fade,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
child: _buildOption(f),
|
||||
onPressed: () {
|
||||
_selectItem(f);
|
||||
},
|
||||
@@ -75,30 +50,7 @@ class _SelectionDialogState extends State<SelectionDialog> {
|
||||
.map(
|
||||
(e) => new SimpleDialogOption(
|
||||
key: Key(e.toLongString()),
|
||||
child: Flex(
|
||||
direction: Axis.horizontal,
|
||||
children: <Widget>[
|
||||
Flexible(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(right: 16.0),
|
||||
child: Image.asset(
|
||||
e.flagUri,
|
||||
package: 'country_code_picker',
|
||||
width: 32.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
fit: FlexFit.tight,
|
||||
child: Text(
|
||||
widget.showCountryOnly
|
||||
? e.toCountryStringOnly()
|
||||
: e.toLongString(),
|
||||
overflow: TextOverflow.fade,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
child: _buildOption(e),
|
||||
onPressed: () {
|
||||
_selectItem(e);
|
||||
},
|
||||
@@ -106,6 +58,32 @@ class _SelectionDialogState extends State<SelectionDialog> {
|
||||
)
|
||||
.toList()));
|
||||
|
||||
Widget _buildOption(CountryCode e) {
|
||||
return Flex(
|
||||
direction: Axis.horizontal,
|
||||
children: <Widget>[
|
||||
Flexible(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(right: 16.0),
|
||||
child: Image.asset(
|
||||
e.flagUri,
|
||||
package: 'country_code_picker',
|
||||
width: 32.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Flexible(
|
||||
flex: 10,
|
||||
fit: FlexFit.tight,
|
||||
child: Text(
|
||||
widget.showCountryOnly ? e.toCountryStringOnly() : e.toLongString(),
|
||||
overflow: TextOverflow.fade,
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
showedElements = widget.elements;
|
||||
|
||||
Reference in New Issue
Block a user