import 'package:flutter/material.dart';
typedef LoginObserver = void Function();
class LoginWidget extends StatefulWidget {
final LoginObserver loginObserver;
LoginWidget({this.loginObserver});
@override
_LoginState createState() {
return _LoginState();
}
}
class _LoginState extends State<LoginWidget> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: new Text("登录"),
),
body: Padding(
padding: EdgeInsets.only(left: 15.0, right: 15.0),
child: buildTextField(),
),
);
}
Widget buildTextField() {
return Column(
children: <Widget>[
Container(
child: TextField(
decoration:
InputDecoration(labelText: "请输入姓名", icon: Icon(Icons.phone)),
keyboardType: TextInputType.phone,
obscureText: false,
),
margin: EdgeInsets.only(top: 15.0),
),
Container(
child: TextField(
decoration:
InputDecoration(labelText: "请输入密码", icon: Icon(Icons.lock)),
keyboardType: TextInputType.text,
obscureText: true,
),
margin: EdgeInsets.only(top: 5.0),
),
Container(
child: Row(
children: <Widget>[
new Expanded(
child: RaisedButton(
colorBrightness: Brightness.light,
textTheme: ButtonTextTheme.primary,
onPressed: () => widget.loginObserver(),
child: new Text(
"登录",
style: TextStyle(fontSize: 18.0),
)))
],
),
margin: EdgeInsets.only(top: 5.0),
),
Expanded(
child: Container(
margin: EdgeInsets.only(bottom: 50.0),
child: Align(
child: Text("©1999-2019 北京xxx网络技术有限公司"),
alignment: FractionalOffset(0.5, 1.0)),
),
),
],
);
}
}
Flutter学习笔记(四)-输入框的使用
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 官方文档地址 加入图片的几种方式 Image.asset:加载资源图片,就是加载项目资源目录中的图片,加入图片后会...
- 欧文和小托马斯互换东家的NBA重磅交易已经过去一整年,而当时参与交易的球员中,必然还属小托马斯的处境最惨…… 去年...