import 'package:flutter/material.dart';
import 'package:flutter_application_tabbar/home/homeVC.dart';
import 'package:flutter_application_tabbar/login/login.dart';
import 'package:flutter_application_tabbar/model/Login.dart';
import 'package:flutter_application_tabbar/tool/SPUtil.dart';
import 'package:flutter_application_tabbar/tool/base_method.dart';
import 'package:flutter_application_tabbar/tool/base_response.dart';
import 'package:flutter_application_tabbar/tool/net.dart';
import 'package:flutter_application_tabbar/tool/network_manager.dart';
import 'package:shared_preferences/shared_preferences.dart';
class login extends StatelessWidget {
String phone = "";
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(appBar: AppBar(title: Text('登录')), body: subLogin()),
);
}
}
class subLogin extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(
child: Padding(
padding: EdgeInsets.all(16.0),
child: Column(
//mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(height: 100),
TextField(
keyboardType: TextInputType.number,
maxLength: 11,
onChanged: (value) {
print(value);
},
onEditingComplete: () {
print(123);
},
decoration: InputDecoration(
labelText: '请输入账号',
//hintText: '在这里输入文本1',
border: OutlineInputBorder(),
),
),
SizedBox(height: 16), // 添加间距
TextField(
maxLength: 6,
keyboardType: TextInputType.number,
decoration: InputDecoration(
labelText: '请输入密码',
//hintText: '在这里输入文本2',
border: OutlineInputBorder(),
),
),
SizedBox(height: 30), // 添加间距
TextButton(
onPressed: () {
onClick(context);
},
child: Text("登录"))
],
),
),
);
}
onClick(BuildContext context) {
this.request(context);
}
void request(BuildContext context) async {
Navigator.push(context, MaterialPageRoute(builder: (context) {
return home();
}));
}
}
这里有两点注意事项
1 context 传参
onPressed: () {
onClick(context);
},
//写成下面这样语法不会报错,但是初始化构建的时候会执行一次
onPressed: onClick(context);
/*在Flutter中,context是一个BuildContext对象,它提供了访问当前widget树的信息。当你调用一个函数并传递context作为参数时,这个函数会在widget被构建时执行。如果你希望在某个事件触发时才调用这个函数,你需要将这个函数绑定到一个事件处理器上,而不是直接调用它。 */
2 导航跳转
body 需要包装一下,不然导航跳转会报下面的错误
//Flutter Error: Navigator operation requested with a context that does not include a Navigator