通过flutter实现一个简单的登陆界面


一、应用截图展示

在这里插入图片描述


二、具体实现

1、导航及左侧退出实现

在这里插入图片描述

关键代码:

return new MaterialApp(
debugShowCheckedModeBanner: false,
title: ‘Welcome to Flutter’,
theme: new ThemeData(
primaryColor: Colors.blueAccent,
),
home: new Scaffold(
appBar: new AppBar(
actions: [
IconButton(icon: Icon(Icons.exit_to_app),onPressed: (){
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(‘提示’),
content: Text(‘确认退出吗?’),
actions: [
FlatButton(child: Text(‘取消’),onPressed: (){
Navigator.of(context).pop(‘cancel’);
},),
FlatButton(child: Text(‘确认’),onPressed: (){
SystemNavigator.pop();
},),
],
);
});
},)
],
title: new Text(‘欢迎来到轩铭世界’),
),

2、登陆主界面实现

在这里插入图片描述
用户名与密码TextFormField的实现

TextFormField(
autofocus: true,
controller: _admController,
decoration: InputDecoration(
labelText: “用户名”,
hintText: “请输入用户名”,
icon: Icon(Icons.perm_contact_calendar)),
//校验
validator: (val) {
if (val.trim().length < 6) {
return “用户名需要6位以上”;
}
return val.trim().length > 0
? null
: “请输入用户名”; //去掉空格,是否大于0
},
),
TextFormField(
autofocus: false,
controller: _pswController,
decoration: InputDecoration(
labelText: “密码”,
hintText: “请输入密码”,
icon: Icon(Icons.remove_red_eye)),
//校验
validator: (val) {
if (val.trim().length < 6) {
return “密码需要6位以上”;
}
return val.trim().length > 0
? null
: “请输入密码”; //去掉空格,是否大于0
},
obscureText: true,
),

提交按钮的实现

RaisedButton(
child: Text(“提交”),
onPressed: () {
if ((_formkey.currentState as FormState)
.validate()) {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => new MyApp()));
///利用路由跳转
print(“提交数据给后台”);
print(“用户名是:” + _admController.text);
print(“密码是:” + _pswController.text);
}
})

设置监听器

//Controller监听
TextEditingController _admController = new TextEditingController();
TextEditingController _pswController = new TextEditingController();

在这里由于没有实现与数据库的交互,故这里展示的登陆界面是没有具体的校验,可以根据需要自己拓展添加。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值