Merge branch 'master' into fix/selection-dialog-performance

This commit is contained in:
Salvatore Giordano
2019-04-12 09:48:07 +02:00
committed by GitHub
3 changed files with 80 additions and 26 deletions

View File

@@ -16,6 +16,16 @@ class CountryCodePicker extends StatefulWidget {
final bool showCountryOnly;
final WidgetBuilder emptySearchBuilder;
/// shows the name of the country instead of the dialcode
final bool showOnlyCountryWhenClosed;
/// aligns the flag and the Text left
///
/// additionally this option also fills the available space of the widget.
/// this is especially usefull in combination with [showOnlyCountryWhenClosed],
/// because longer countrynames are displayed in one line
final bool alignLeft;
CountryCodePicker({
this.onChanged,
this.initialSelection,
@@ -24,6 +34,8 @@ class CountryCodePicker extends StatefulWidget {
this.padding = const EdgeInsets.all(0.0),
this.showCountryOnly = false,
this.emptySearchBuilder,
this.showOnlyCountryWhenClosed = false,
this.alignLeft = false,
});
@override
@@ -57,8 +69,12 @@ class _CountryCodePickerState extends State<CountryCodePicker> {
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Flexible(
flex: widget.alignLeft ? 0 : 1,
fit: widget.alignLeft ? FlexFit.tight : FlexFit.loose,
child: Padding(
padding: const EdgeInsets.only(right: 16.0),
padding: widget.alignLeft
? const EdgeInsets.only(right: 16.0, left: 8.0)
: const EdgeInsets.only(right: 16.0),
child: Image.asset(
selectedItem.flagUri,
package: 'country_code_picker',
@@ -67,8 +83,9 @@ class _CountryCodePickerState extends State<CountryCodePicker> {
),
),
Flexible(
fit: widget.alignLeft ? FlexFit.tight : FlexFit.loose,
child: Text(
widget.showCountryOnly
widget.showOnlyCountryWhenClosed
? selectedItem.toCountryStringOnly()
: selectedItem.toString(),
style: widget.textStyle ?? Theme.of(context).textTheme.button,