diff --git a/assets/logout.png b/assets/logout.png new file mode 100644 index 0000000..83b23bb Binary files /dev/null and b/assets/logout.png differ diff --git a/assets/registration_logo.png b/assets/registration_logo.png new file mode 100644 index 0000000..dcece20 Binary files /dev/null and b/assets/registration_logo.png differ diff --git a/assets/splash.png b/assets/splash.png new file mode 100644 index 0000000..929bcb5 Binary files /dev/null and b/assets/splash.png differ diff --git a/lib/main.dart b/lib/main.dart index 32b890b..77ede3e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'registration.dart'; +import 'splash.dart'; const String _name = "Ivan Murashov"; @@ -9,6 +9,17 @@ void main() { class Checker extends StatelessWidget { @override Widget build(BuildContext context) { - return new MaterialApp(title: "DemoApp", home: new RegistrationScreen()); + return new MaterialApp(title: "DemoApp", home: new SplashScreen()); + } +} + +abstract class BaseState extends State { + + void faq() { + + } + + void logout() { + } } diff --git a/lib/registration.dart b/lib/registration.dart index c34d147..553ee8c 100644 --- a/lib/registration.dart +++ b/lib/registration.dart @@ -1,23 +1,41 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'dart:async'; +import 'main.dart'; /// Экран регистрации магазина и кассы. class RegistrationScreen extends StatefulWidget { @override State createState() => new _RegistrationScreenState(); } -class _RegistrationScreenState extends State { +class _RegistrationScreenState extends BaseState { static const platform = const MethodChannel('com.dinnect.checker/scanner'); @override Widget build(BuildContext context) { - return new Scaffold(appBar: new AppBar( - title: new Text("Регистрация магазина")), body: _buildScreen()); + return new Scaffold(appBar: _getAppBar(), body: _getScreen()); + } + + faq() {} + + AppBar _getAppBar() { + return new AppBar(title: new Text("Регистрация магазина"), + backgroundColor: const Color(0xff4272e7), actions: [ + new IconButton( + icon: new Icon(Icons.help_outline), + tooltip: 'Air it', + onPressed: faq, + ), + new IconButton( + icon: new Image(height: 24.0, width: 24.0, image: new AssetImage('assets/logout.png')), + tooltip: 'Restitch it', + onPressed: logout, + ) + ]); } /// На экране будет отображаться Column, с отцентрированными виджетами. - Widget _buildScreen() { + Widget _getScreen() { return new Center(child: new Column(children: _getChildren())); } @@ -29,26 +47,54 @@ class _RegistrationScreenState extends State { } } - void _handleSubmitted(String text) { - - } - List _getChildren() { return[ _getLogo(), - _getInputField("ID кассы"), - _getInputField("Номер кассы"), + _getDecoratedInputField("ID магазина", 0.0), + _getDecoratedInputField("Номер кассы", 36.0), + _getButton() ]; } - Row _getLogo() { - return new Row( - // TODO: Два Image() с логотипом - ); + Container _getLogo() { + return new Container(height: 192.0, + child: new Center( + child: new Image.asset('assets/registration_logo.png', + height: 24.0, + width: 156.0))); } - Container _getInputField(String hint) { - return new Container(padding: new EdgeInsets.all(8.0), - child: new TextField(decoration: new InputDecoration(hintText: hint))) ; + Container _getDecoratedInputField(String hint, double topPadding) { + return new Container( + padding: new EdgeInsets.only(left: 28.0, right: 28.0, top: topPadding), + child: new Container(height: 48.0, + padding: new EdgeInsets.only(left: 16.0, right: 16.0), + decoration: _getDecoraionForInputField(), + child: _getInputField(hint))) ; } + + TextField _getInputField(String hint) { + return new TextField(decoration: new InputDecoration(hintText: hint, + hideDivider: true, + hintStyle: new TextStyle(color: const Color(0xffa5a5a5), + fontSize: 16.0))); + } + + Decoration _getDecoraionForInputField() { + return new BoxDecoration(color: Colors.white, + border: new Border.all( + color: const Color(0xffcfd8dc), width: 1.0,), + borderRadius: new BorderRadius.all(new Radius.circular(4.0))); + } + + Container _getButton() { + return new Container(padding: new EdgeInsets.only(top: 36.0), + child: new Container(height: 64.0, padding: new EdgeInsets.all(8.0), + child: new RaisedButton(child: new Text('ЗАРЕГИСТРИРОВАТЬ', + style: new TextStyle(color: Colors.white)), + onPressed: null, disabledColor: const Color(0xffbfbfbf)))); + } + + doStuff() {} + } \ No newline at end of file diff --git a/lib/splash.dart b/lib/splash.dart new file mode 100644 index 0000000..3f545e2 --- /dev/null +++ b/lib/splash.dart @@ -0,0 +1,22 @@ +import 'dart:async'; +import 'registration.dart'; + +import 'package:flutter/material.dart'; + +class SplashScreen extends StatelessWidget { + + @override + Widget build(BuildContext context) { + new Future.delayed(const Duration(milliseconds: 1000), () { + _goToNextScreen(context); + }); + return new Image.asset('assets/splash.png', fit: BoxFit.cover); + } + + _goToNextScreen(BuildContext context) { + Navigator.of(context).push(new MaterialPageRoute( + builder: (BuildContext context) { + return new RegistrationScreen(); + })); + } +} \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index b58556e..501372e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -18,9 +18,10 @@ flutter: # To add assets to your application, add an assets section here, in # this "flutter" section, as in: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg + assets: + - assets/registration_logo.png + - assets/splash.png + - assets/logout.png # To add assets from package dependencies, first ensure the asset # is in the lib/ directory of the dependency. Then, @@ -48,4 +49,4 @@ flutter: # fonts: # - asset: fonts/TrajanPro.ttf # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 + # weight: 700 \ No newline at end of file