Merge pull request #78 from imtoori/hotfix/showFlag

fix showflagdialog and main to override the showflag property
This commit is contained in:
Salvatore Giordano
2020-05-16 15:43:32 +02:00
committed by GitHub
2 changed files with 23 additions and 16 deletions

View File

@@ -38,9 +38,8 @@ class _MyAppState extends State<MyApp> {
// Initial selection and favorite can be one of code ('IT') OR dial_code('+39')
initialSelection: 'IT',
favorite: ['+39', 'FR'],
showFlag: false,
countryFilter: ['IT', 'FR'],
showFlagDialog: true,
showFlagDialog: false,
comparator: (a, b) => b.name.compareTo(a.name),
//Get the country information relevant to the initial selection
onInit: (code) =>
@@ -53,14 +52,14 @@ class _MyAppState extends State<MyApp> {
padding: const EdgeInsets.all(8.0),
child: CountryCodePicker(
onChanged: print,
hideMainText: true,
showFlagMain: true,
showFlag: false,
initialSelection: 'TF',
hideSearch: true,
showCountryOnly: true,
showOnlyCountryWhenClosed: true,
alignLeft: true,
builder: (countryCode) {
return Text('${countryCode.code}');
},
),
),
),

View File

@@ -42,6 +42,8 @@ class CountryCodePicker extends StatefulWidget {
/// shows the flag
final bool showFlag;
final bool hideMainText;
final bool showFlagMain;
final bool showFlagDialog;
@@ -71,6 +73,7 @@ class CountryCodePicker extends StatefulWidget {
this.alignLeft = false,
this.showFlag = true,
this.showFlagDialog,
this.hideMainText = false,
this.showFlagMain,
this.builder,
this.flagWidth = 32.0,
@@ -132,7 +135,9 @@ class CountryCodePickerState extends State<CountryCodePicker> {
direction: Axis.horizontal,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
if (widget.showFlag || (widget.showFlagMain == true))
if (widget.showFlagMain != null
? widget.showFlagMain
: widget.showFlag)
Flexible(
flex: widget.alignLeft ? 0 : 1,
fit: widget.alignLeft ? FlexFit.tight : FlexFit.loose,
@@ -147,16 +152,17 @@ class CountryCodePickerState extends State<CountryCodePicker> {
),
),
),
Flexible(
fit: widget.alignLeft ? FlexFit.tight : FlexFit.loose,
child: Text(
widget.showOnlyCountryWhenClosed
? selectedItem.toCountryStringOnly()
: selectedItem.toString(),
style: widget.textStyle ?? Theme.of(context).textTheme.button,
overflow: widget.textOverflow,
if (!widget.hideMainText)
Flexible(
fit: widget.alignLeft ? FlexFit.tight : FlexFit.loose,
child: Text(
widget.showOnlyCountryWhenClosed
? selectedItem.toCountryStringOnly()
: selectedItem.toString(),
style: widget.textStyle ?? Theme.of(context).textTheme.button,
overflow: widget.textOverflow,
),
),
),
],
),
);
@@ -231,7 +237,9 @@ class CountryCodePickerState extends State<CountryCodePicker> {
searchDecoration: widget.searchDecoration,
searchStyle: widget.searchStyle,
textStyle: widget.dialogTextStyle,
showFlag: widget.showFlag || (widget.showFlagDialog == true),
showFlag: widget.showFlagDialog != null
? widget.showFlagDialog
: widget.showFlag,
flagWidth: widget.flagWidth,
size: widget.dialogSize,
hideSearch: widget.hideSearch,