I have a language selection dropdown for English and Malayalam
After selecting language, selection stays blank. Can only see the hint text.
I am not getting any errors. Flutter doctor is fine
Container(
height: 250,
width: double.infinity,
child: Column(
children: <Widget>[
Flexible(
flex: 0,
child: Padding(
padding: EdgeInsets.only(left: 10, right: 10, top: 15),
child: Container(
width: double.infinity,
height: 45,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(5),
border: Border.all(color: Colors.blueGrey)
),
child: DropdownButton(
isExpanded: true,
itemHeight: 50,
icon: Icon(Icons.arrow_drop_down),
iconSize: 40,
underline: SizedBox(),
hint: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(AppLocalization.of(context).getTranslatedValues('selectlang'),style: TextStyle(fontSize: 15,color: Colors.black54),),
),
onChanged: (Language language) {
_changeLanguage(language);
setState(() {
_selectedeLang = language;
});
},
items: Language.languageList()
.map<DropdownMenuItem<Language>>((lang) => DropdownMenuItem(
value: lang,
child: Row(
children: <Widget>[
Center(child: Text((lang.name),style: TextStyle(fontSize: 15),))
],
),
))
.toList(),
),
),
),
),
Flexible(
flex: 0,
child: Padding(padding: EdgeInsets.only(left: 8,top: 25,bottom: 8),
child: GestureDetector(
child: Container(
height: 45,
width: 200,
child: Center(child: Text(AppLocalization.of(context).getTranslatedValues('submit'),style: TextStyle(color: Colors.white,fontSize: 12,fontWeight: FontWeight.bold),),),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Color.fromRGBO( 34, 83, 148,1),
),
),
onTap: (){
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => RegisterScreen(),
),
);
},),
),
),
],
),
)
Onchange Function
void _changeLanguage(Language language) {
Locale _temp;
switch (language.languageCode) {
case 'en':
_temp = Locale(language.languageCode, 'US');
break;
case 'ml':
_temp = Locale(language.languageCode, 'IN');
break;
default:
_temp = Locale(language.languageCode, 'US');
}
MyApp.setLocale(context, _temp);
}