Flutter 登录模板
一个 Flutter 包,用于创建用于登录/注册工作流的一组页面。它将对您的超棒应用程序很有用。
示例
如今,大多数移动应用程序的设计都大同小异。基于此,我创建了这个包,以帮助您节省大量开发时间。将这些时间用于享受咖啡或啤酒吧 :D。
import 'package:flutter_login_template/flutter_login_template.dart';
enum _State {
signIn,
signUp,
forgot,
confirm,
create,
}
class _MyAppState extends State<MyApp> {
late LoginTemplateStyle style;
_State state = _State.signIn;
@override
void initState() {
style = LoginTemplateStyle.defaultTemplate;
super.initState();
}
@override
Widget build(BuildContext context) {
var logo = Icon(
Icons.android_rounded,
size: 80,
);
var signInPage = LoginTemplateSignInPage(
logo: logo,
style: style,
onPressedSignIn: () {},
onPressedSignUp: () {
setState(() {
state = _State.signUp;
});
},
onPressedForgot: () {
setState(() {
state = _State.forgot;
});
},
socialButtons: [
LoginTemplateSocialButton(
text: 'Apple',
onPressed: () {},
icon: Icon(
Icons.account_circle_sharp,
size: 16,
color: style.socialButtonTextStyle.color,
),
style: style,
),
LoginTemplateSocialButton(
text: 'Google',
onPressed: () {},
icon: Icon(
Icons.android,
size: 16,
color: style.socialButtonTextStyle.color,
),
style: style,
)
],
term: LoginTemplateTerm(
style: style,
onPressedTermOfService: () {},
onPressedPrivacyPolicy: () {},
),
);
var signUpPage = LoginTemplateSignUpPage(
logo: logo,
style: style,
onPressedSignIn: () {
setState(() {
state = _State.signIn;
});
},
onPressedSignUp: () {
setState(() {
state = _State.confirm;
});
},
term: LoginTemplateTerm(
style: style,
onPressedTermOfService: () {},
onPressedPrivacyPolicy: () {},
),
);
var forgotPasswordPage = LoginTemplateForgotPasswordPage(
logo: logo,
style: style,
onPressedNext: () {
setState(() {
state = _State.confirm;
});
});
var confirmCodePage = LoginTemplateConfirmCodePage(
logo: logo,
style: style,
onPressedNext: () {
setState(() {
state = _State.create;
});
},
onPressedResend: () {},
);
var createPassword = LoginTemplateCreatePasswordPage(
logo: logo,
style: style,
errorTextPassword:
'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source.',
onPressedNext: () {
setState(() {
state = _State.signIn;
});
},
);
Widget body;
switch (state) {
case _State.signUp:
body = signUpPage;
break;
case _State.forgot:
body = forgotPasswordPage;
break;
case _State.confirm:
body = confirmCodePage;
break;
case _State.create:
body = createPassword;
break;
case _State.signIn:
default:
body = signInPage;
break;
}
return MaterialApp(
title: 'Example',
theme: ThemeData(
primarySwatch: Colors.blue,
accentColor: Colors.orangeAccent,
),
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Login Template'),
),
body: SingleChildScrollView(
child: body,
),
),
);
}
}
开发环境
[✓] Flutter (Channel stable, 3.0.1, on macOS 12.3.1 21E258 darwin-x64, locale en-VN)
• Flutter version 3.0.1 at ~/fvm/versions/stable
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision fb57da5f94 (5 days ago), 2022-05-19 15:50:29 -0700
• Engine revision caaafc5604
• Dart version 2.17.1
• DevTools version 2.12.2
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at ~/Library/Android/sdk
• Platform android-31, build-tools 30.0.3
• ANDROID_HOME = ~/Library/Android/sdk
• ANDROID_SDK_ROOT = ~/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.3.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
? https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
? https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
[✓] VS Code (version 1.67.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.40.0
待办事项
- 动画。
- 扁平化设计。
- 新拟态设计。
- 密码页。
- 生物识别登录选项。
- 生物识别配置页。
- 用户个人资料页。
