Выпадающее меню с тремя кнопками

This commit is contained in:
Ivan Murashov
2017-09-08 11:01:42 +03:00
parent c703977651
commit c652276066
17 changed files with 111 additions and 94 deletions

131
lib/screens/faq.dart Normal file
View File

@@ -0,0 +1,131 @@
import 'package:flutter/material.dart';
import 'package:checker/base_state.dart';
import 'package:checker/consts.dart';
import 'package:checker/common.dart';
/// Класс содержит заголовки и текст блоков FAQ.
class Entry {
Entry(this.title, this.text);
final String title;
final String text;
}
class EntryItem extends StatelessWidget {
const EntryItem(this.entry);
final Entry entry;
Widget _buildTiles(BuildContext context, Entry root) {
EdgeInsets margin = new EdgeInsets.only(left: 20.0, right: 20.0);
TextStyle titleStyle = Theme.of(context).textTheme.button.copyWith(fontWeight: FontWeight.bold, color: faqTitlesColor);
return new Container(margin: margin, child: new Card(child: new ExpansionTile(
key: new PageStorageKey<Entry>(root),
title:new Text(root.title, style: titleStyle),
children: [new Container(margin: margin, padding: new EdgeInsets.only(top: 12.0, bottom: 20.0),
child: new Text(root.text, style: new TextStyle(fontWeight: FontWeight.w300, color: faqGrey, fontSize: 14.0)),
decoration: new BoxDecoration(border: new Border(top: new BorderSide(color: greyTextColor, width: 0.5))))]
)));
}
@override
Widget build(BuildContext context) {
return _buildTiles(context, entry);
}
}
class FAQScreen extends StatefulWidget {
FAQScreen(this.b);
final bool b;
@override State createState() => new FAQScreenState<FAQScreen>(b);
}
class FAQScreenState<T> extends BaseState<FAQScreen> {
FAQScreenState(this.returnToScanner);
final bool returnToScanner;
@override String getTitle() {
return "FAQ";
}
@override getMenuButtons() {
return <Widget>[getLogoutButton()];
}
@override String getHint() {
return null;
}
/// Метод возвращает ListView с блоками faq.
@override Widget getScreenContent() {
return new WillPopScope(onWillPop: onWillPop, child: new ListView.builder(
itemBuilder: (BuildContext context, int index) => new EntryItem(data[index]),
itemCount: data.length));
}
onWillPop() {
if(returnToScanner) {
return startScanner(context, app, helper);
} else {
return true;
}
}
/// Список с контентом
final List<Entry> data = <Entry>[
new Entry('РЕГИСТРАЦИЯ', registrationGuide),
new Entry('ИСПОЛЬЗОВАНИЕ', usageGuide),
new Entry('КОНТАКТЫ ПОДДЕРЖКИ', supportGuide),
new Entry('ОБЩАЯ ИНФОРМАЦИЯ', commonGuide)
];
static const String registrationGuide = '''
После запуска приложения вы окажетесь на странице регистрации магазина.
Введите DIN код магазина (выдается партнером/менеджером International Auto Club, дублируется на почту)
Кликните по кнопке: «Зарегистрировать»
Дождитесь подтверждение активации программы, кликом по кнопке «Обновите статус активации» обновите статус.
После подтверждения запроса на активацию программы Партнером/менеджером кликните по кнопке «Завершить регистрацию», приложение готово к использованию.
При желании изменить номер кассы, необходимо кликнуть на «значок» верхнем правом углу и вернуться на шаг регистрации.
''';
static const String usageGuide = '''
Действие 1:
При предъявлении покупателем штрих-кода участника системы лояльности, запустите данное приложение.
На экране появится сканер штрих кодов. Отсканируйте предъявленный штрих-код сканером.
При успешном сканировании на вашем экране появятся данные партнера.
Действие 2:
Необходимо ввести сумму покупки данного покупателя и кликнуть по кнопке «Зафиксировать».
Всплывет окно подтверждения правильности ввода суммы». В случае правильного ввода суммы, кликните «ДА», сумма будет проведена и вознаграждение будет начислено участнику системы лояльности.
Если сумма введена с ошибкой, кликните «НЕТ» и Вы вернетесь на шаг ввода суммы и сможете её скорректировать.
''';
static const String supportGuide = '''
При некорректной работе приложения AUTO BONUS просьба сразу обратиться по телефону нашей технической поддержки: 8-800-234-6064 (звонок бесплатный) и Вас свяжут с менеджером.
При звонке приготовьтесь назвать ИНН и наименование вашей организации.
Рекомендуйте покупателям установить мобильное приложение дисконтной системы International Auto Club AUTO CLUB и получайте новых лояльных покупателей.
Наш сайт https://www.auto-club.biz
''';
static const String commonGuide = '''
Для эффективного считывания штрих-кода участника системы лояльности необходимо камеру сканера поднести так, чтобы в неё не попадали вертикальные полосы рамки.
Увеличение времени сканирования может произойти из-за черной рамки, в которую помещен штрих-код, так как вертикальные полосы этой рамки расцениваются сканером как часть штрих-кода.
''';
}