import 'package:aitrainer_app/localization/app_language.dart'; import 'package:aitrainer_app/localization/app_localization.dart'; import 'package:aitrainer_app/widgets/bottom_nav.dart'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; class SettingsPage extends StatefulWidget{ _SettingsPageState _state; _SettingsPageState createState() { _state = new _SettingsPageState(); return _state; } } class _SettingsPageState extends State { final AppLanguage appLanguage = AppLanguage(); Locale _locale; final _formKey = GlobalKey(); @override Widget build(BuildContext context) { BottomNavigator bottomNav = BottomNavigator(); _locale = appLanguage.appLocal; return Scaffold( appBar: AppBar( title: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text(AppLocalizations.of(context).translate('Settings')), Image.asset( 'asset/image/WT_long_logo.png', fit: BoxFit.cover, height: 65.0, ), ], ), //title: Text(AppLocalizations.of(context).translate('Settings')), backgroundColor: Colors.transparent, ), body: Container( decoration: BoxDecoration( image: DecorationImage( image: AssetImage('asset/image/WT_light_background.png'), fit: BoxFit.cover, alignment: Alignment.center, ), ), child: Form( key: _formKey, child: ListView( padding: EdgeInsets.only(top: 150), children: [ ListTile( leading: Icon(Icons.language), subtitle: Text(AppLocalizations.of(context).translate("Change App Language")), title: DropdownButton( value: _locale == Locale('en') ? AppLocalizations.of(context).translate("English") : AppLocalizations.of(context).translate("Hungarian"), items: [AppLocalizations.of(context).translate("English"), AppLocalizations.of(context).translate("Hungarian")] .map>((String value) { return DropdownMenuItem( value: value, child: Text(value), ); }).toList(), onChanged:(String lang) => _changeLanguage(lang), ) ), ] ), ), ), bottomNavigationBar: bottomNav.buildBottomNavigator(context, widget._state) ); } _changeLanguage( String lang ) { setState(() { switch ( lang ) { case "English": case "Angol": _locale = Locale('en'); break; case "Hungarian": case "Magyar": _locale = Locale('hu'); break; } appLanguage.changeLanguage(_locale); AppLocalizations.of(context).setLocale(_locale); AppLocalizations.of(context).load(); }); } }