import 'dart:convert';import 'package:flutter/material.dart';import 'package:dio/dio.dart';import 'dart:async';import 'package:fluttertoast/fluttertoast.dart';import './main.dart';class LoginPage extends StatefulWidget { _LoginPageState createState() => _LoginPageState();}class _LoginPageState extends State<LoginPage> { TextStyle TheStyle = TextStyle( color: Colors.white, fontSize: 17.0, fontWeight: FontWeight.w500); var usernameController = new TextEditingController(); var userPwdController = new TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( // appBar: AppBar( // title: Text('芝麻开门'), // centerTitle: true, // ), backgroundColor: Color.fromRGBO(150, 180, 230, 3), body: Center( child: new Column( //MainAxisSize在主轴方向占有空间的值,默认是max。还有一个min mainAxisSize: MainAxisSize.max, //MainAxisAlignment:主轴方向上的对齐方式,会对child的位置起作用,默认是start。 mainAxisAlignment: MainAxisAlignment.start, children: <Widget>[ Container( height: 25,), Container( width: 410, height: 120, padding: new EdgeInsets.fromLTRB(10, 0.0, 10.0, 10.0), child: Container( child: Image.network( 'https://cdn.nlark.com/yuque/0/2019/png/164272/1556429404436-33f4dea0-2d03-4d5a-b991-fa28eca50ffb.png'), color: Color.fromRGBO(150, 180, 230, 1), )), Padding( padding: EdgeInsets.all(10.0), // 用户名输入框 child: TextField( // 控制器 controller: usernameController, keyboardType: TextInputType.number, // maxLength: 11, // maxLines: 1, // 是否自动更正 autocorrect: false, // 是否自动对焦 autofocus: false, decoration: new InputDecoration( suffixText: "可以用学号", suffixStyle: TextStyle(fontSize: 12.0, fontWeight: FontWeight.w300,color: Colors.blueGrey[300]), labelText: "用户名", // labelStyle: TextStyle(fontSize: 17.0, fontWeight: FontWeight.w600,color: Colors.blueGrey[300]), icon: new Icon(Icons.filter_tilt_shift,color: Colors.lightBlueAccent[300],), ), onChanged: (text) { //内容改变的回调 print('change $text'); }, onSubmitted: (text) { //内容提交(按回车)的回调 print('submit $text'); }, ), ), Padding( padding: EdgeInsets.all(10.0), child: TextField( //控制器 controller: userPwdController, // 密码 obscureText: true, decoration: new InputDecoration( labelText: "密码", icon: new Icon(Icons.lock_outline,color: Colors.lightBlueAccent[300],), ), onChanged: (text) { //内容改变的回调 print('change $text'); }, onSubmitted: (text) { //内容提交(按回车)的回调 print('submit $text'); }, ), ), Container( //这里写800已经超出屏幕了,可以理解为match_parent width: 800.0, margin: new EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 10.0), padding: new EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 10.0), //类似cardview child: new Card( color: Colors.blueAccent, // 阴影 elevation: 3.0, //按钮 child: new FlatButton( disabledColor: Colors.grey, disabledTextColor: Colors.black, onPressed: () { if (usernameController.text.isEmpty) { //第三方的插件Toast,https://pub.dartlang.org/packages/fluttertoast Fluttertoast.showToast( msg: "用户名不能为空哦", toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIos: 2, backgroundColor: Colors.white70, textColor: Colors.grey[800]); } else if (userPwdController.text.isEmpty) { Fluttertoast.showToast( msg: "密码不能为空哦", toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, timeInSecForIos: 1, backgroundColor: Colors.white70, fontSize: 16.0, textColor: Colors.black); } else { //弹出对话框,里面写着账号和密码 showDialog( context: context, builder: (_) { return AlertDialog( title: Text("对话框"), content: Text(usernameController.text + "\n" + userPwdController.text), actions: <Widget>[ //对话框里面的两个按钮 FlatButton( onPressed: () { Navigator.of(context).pop(); }, child: Text("取消")), FlatButton( //点击确定跳转到下一个界面,也就是HomePage onPressed: () { Navigator.push( context, MaterialPageRoute( builder: (context) => new MyHomePage())); }, child: Text("确定")), ], ); }); } }, child: new Padding( padding: new EdgeInsets.all(10.0), child: new Text( '登录', style: new TextStyle( color: Colors.white, fontSize: 16.0), ), )), ), ) ]))); }}
