Локализация экрана настроек, удалил лишние конфигурации сборки

This commit is contained in:
Ivan Murashov
2017-09-11 11:41:20 +03:00
parent 0dc8ab5da0
commit 0dde204dcd
12 changed files with 131 additions and 57 deletions

View File

@@ -17,10 +17,10 @@ class SettingsScreen extends StatefulWidget {
class MenuItem {
MenuItem();
// Заголовок пункта меню и выбранное значение.
String title, selectedValue;
String title;
String selectedValue;
MenuItem(this.title, this.selectedValue);
}
class _SettingsState extends BaseState<SettingsScreen> {
@@ -31,16 +31,11 @@ class _SettingsState extends BaseState<SettingsScreen> {
if (menuItems == null) {
helper.getSettings().then((info) {
setState(() {
print("load settings");
menuItems = [new MenuItem(), new MenuItem()];
menuItems[0].title = StringsLocalization.locale();
menuItems[0].selectedValue = info["locale"];
menuItems[1].title = StringsLocalization.currency();
menuItems[1].selectedValue = info["currency"].toString();
menuItems = [
new MenuItem(StringsLocalization.locale(), getLocaleTitle(info["locale"])),
new MenuItem(StringsLocalization.currency(), getCurrencyTitle(info["currency"]))
];
});
});
}
@@ -53,17 +48,35 @@ class _SettingsState extends BaseState<SettingsScreen> {
: new ListView(children: getSettings());
}
@override
List<Widget> getMenuButtons() {
return null;
}
List<Widget> getSettings() {
List<Widget> widgets = new List();
for (MenuItem item in menuItems) {
widgets.add(new Row(children: [
new Text(item.title, textAlign: TextAlign.left),
new Text(item.selectedValue,textAlign: TextAlign.right),
new Image.asset(settings_arrow_png, width: 28.0, height: 28.0, alignment: FractionalOffset.centerRight)]));
widgets.add(getSettingsItem(item));
}
return widgets;
}
Widget getSettingsItem(MenuItem item) {
return new Container(
margin: const EdgeInsets.all(16.0),
child: new Row(children: <Widget>[
new Expanded(child: new Text(item.title)),
new Text(item.selectedValue),
getArrow()])
);
}
Widget getArrow() {
return new Image.asset(settings_arrow_png,
width: 28.0,
height: 28.0);
}
@override
String getTitle() {
return StringsLocalization.settings();