Skip to content

Instantly share code, notes, and snippets.

@podcoder
Created April 1, 2020 08:17
Show Gist options
  • Save podcoder/3feeaa7cba6e326f8ae808695995a816 to your computer and use it in GitHub Desktop.
Save podcoder/3feeaa7cba6e326f8ae808695995a816 to your computer and use it in GitHub Desktop.
Settings Page
import 'package:flutter/material.dart';
import 'package:flutter_localization_master/classes/language.dart';
import 'package:flutter_localization_master/localization/language_constants.dart';
import 'package:flutter_localization_master/main.dart';
class SettingsPage extends StatefulWidget {
SettingsPage({Key key}) : super(key: key);
@override
_SettingsPageState createState() => _SettingsPageState();
}
class _SettingsPageState extends State<SettingsPage> {
void _changeLanguage(Language language) async {
Locale _locale = await setLocale(language.languageCode);
MyApp.setLocale(context, _locale);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(getTranslated(context, 'settings')),
),
body: Container(
child: Center(
child: DropdownButton<Language>(
iconSize: 30,
hint: Text(getTranslated(context, 'change_language')),
onChanged: (Language language) {
_changeLanguage(language);
},
items: Language.languageList()
.map<DropdownMenuItem<Language>>(
(e) => DropdownMenuItem<Language>(
value: e,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text(
e.flag,
style: TextStyle(fontSize: 30),
),
Text(e.name)
],
),
),
)
.toList(),
)),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment