import 'package:flutter/material.dart'; import 'package:http/http.dart'; import 'dart:convert'; import 'dart:async'; import 'package:checker/common.dart'; import 'package:checker/network.dart'; import 'package:checker/consts.dart'; import 'package:checker/db.dart'; import 'package:checker/strings.dart'; import 'package:checker/base_state.dart'; import 'package:checker/screens/registration.dart'; import 'package:checker/screens/finish_registration.dart'; class SettingsScreen extends StatefulWidget { @override State createState() => new _SettingsState(); } class MenuItem { // Заголовок пункта меню и выбранное значение. String title, selectedValue; MenuItem(this.title, this.selectedValue); } class _SettingsState extends BaseState { List menuItems; @override onStart() { if (menuItems == null) { helper.getSettings().then((info) { setState(() { print("load settings"); menuItems = [ new MenuItem(StringsLocalization.locale(), getLocaleTitle(info["locale"])), new MenuItem(StringsLocalization.currency(), getCurrencyTitle(info["currency"])) ]; }); }); } } @override Widget getScreenContent() { return menuItems == null ? getBackground() : new ListView(children: getSettings()); } @override List getMenuButtons() { return null; } List getSettings() { List widgets = new List(); for (MenuItem item in menuItems) { widgets.add(getSettingsItem(item)); } return widgets; } Widget getSettingsItem(MenuItem item) { return new Container( margin: const EdgeInsets.all(16.0), child: new Row(children: [ 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(); } }