Flutter社交登录按钮插件flutter_signin_button2的使用
Flutter社交登录按钮插件flutter_signin_button2的使用
安装
在pubspec.yaml
文件中添加依赖:
dependencies:
...
flutter_signin_button2: ^1.0.0
使用示例
首先,在项目中导入flutter_signin_button2
包:
import 'package:flutter_signin_button2/flutter_signin_button.dart';
内置按钮
使用内置按钮,例如Google登录按钮:
SignInButton(
Buttons.Google,
onPressed: () {
// 处理点击事件
},
)
你也可以自定义按钮上的文本:
SignInButton(
Buttons.Google,
text: "使用Google注册",
onPressed: () {
// 处理点击事件
},
)
迷你按钮
对于迷你按钮,例如Facebook迷你按钮:
SignInButton(
Buttons.Facebook,
mini: true,
onPressed: () {
// 处理点击事件
},
)
自定义按钮
使用SignInButtonBuilder
创建自定义按钮:
SignInButtonBuilder(
text: '使用电子邮件注册',
icon: Icons.email,
onPressed: () {
// 处理点击事件
},
backgroundColor: Colors.blueGrey.shade700,
)
内置按钮枚举值
内置按钮包含以下枚举值:
enum Buttons {
Apple,
AppleDark,
Email,
Google,
GoogleDark,
Facebook,
FacebookNew,
GitHub,
LinkedIn,
Pinterest,
Tumblr,
Twitter
}
示例代码
以下是完整的示例代码:
import 'package:flutter/material.dart';
import 'package:flutter_signin_button2/flutter_signin_button.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
/// 这是一个使用 `SignInButtonBuilder` 和 `SignInButton` 类的示例应用
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData.light(),
home: const Scaffold(
backgroundColor: Color.fromRGBO(50, 50, 50, 1.0),
body: SignInPage(),
),
debugShowCheckedModeBanner: false,
);
}
}
class SignInPage extends StatelessWidget {
const SignInPage({super.key});
/// 显示一个简单的 "___ 按钮已按下" 提示
void _showButtonPressDialog(BuildContext context, String provider) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text('$provider 按钮已按下!'),
backgroundColor: Colors.black26,
duration: const Duration(milliseconds: 400),
));
}
/// 登录按钮通常应该包含在 SignInPage 中
[@override](/user/override)
Widget build(BuildContext context) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SignInButtonBuilder(
text: '开始使用电子邮件',
icon: Icons.email,
onPressed: () {
_showButtonPressDialog(context, 'Email');
},
backgroundColor: Colors.blueGrey[700]!,
width: 220.0,
),
const Divider(),
SignInButton(
Buttons.Google,
onPressed: () {
_showButtonPressDialog(context, 'Google');
},
),
const Divider(),
SignInButton(
Buttons.GoogleDark,
onPressed: () {
_showButtonPressDialog(context, 'Google (暗色)');
},
),
const Divider(),
SignInButton(
Buttons.FacebookNew,
onPressed: () {
_showButtonPressDialog(context, 'FacebookNew');
},
),
const Divider(),
SignInButton(
Buttons.Apple,
onPressed: () {
_showButtonPressDialog(context, 'Apple');
},
),
const Divider(),
SignInButton(
Buttons.GitHub,
text: '使用GitHub注册',
onPressed: () {
_showButtonPressDialog(context, 'GitHub');
},
),
const Divider(),
SignInButton(
Buttons.Microsoft,
text: '使用Microsoft注册',
onPressed: () {
_showButtonPressDialog(context, 'Microsoft');
},
),
const Divider(),
SignInButton(
Buttons.Twitter,
text: '使用Twitter',
onPressed: () {
_showButtonPressDialog(context, 'Twitter');
},
),
const Divider(),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SignInButton(
Buttons.LinkedIn,
mini: true,
onPressed: () {
_showButtonPressDialog(context, 'LinkedIn (迷你)');
},
),
SignInButton(
Buttons.Tumblr,
mini: true,
onPressed: () {
_showButtonPressDialog(context, 'Tumblr (迷你)');
},
),
SignInButton(
Buttons.Facebook,
mini: true,
onPressed: () {
_showButtonPressDialog(context, 'Facebook (迷你)');
},
),
SignInButtonBuilder(
icon: Icons.email,
text: '忽略迷你按钮的文本',
mini: true,
onPressed: () {
_showButtonPressDialog(context, 'Email (迷你)');
},
backgroundColor: Colors.cyan,
),
],
),
],
),
);
}
}
更多关于Flutter社交登录按钮插件flutter_signin_button2的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter社交登录按钮插件flutter_signin_button2的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_signin_button2
是一个用于在 Flutter 应用中添加社交登录按钮的插件。它支持多种社交登录平台,如 Google、Facebook、Apple、Twitter 等。这个插件是 flutter_signin_button
的升级版本,提供了更多的自定义选项和更好的兼容性。
安装
首先,你需要在 pubspec.yaml
文件中添加 flutter_signin_button2
依赖:
dependencies:
flutter:
sdk: flutter
flutter_signin_button2: ^2.0.0
然后运行 flutter pub get
来安装依赖。
基本用法
-
导入包:
在需要使用社交登录按钮的 Dart 文件中导入
flutter_signin_button2
包:import 'package:flutter_signin_button2/flutter_signin_button2.dart';
-
使用社交登录按钮:
你可以在你的 UI 中使用
SignInButton
小部件来添加社交登录按钮。以下是一个简单的示例:import 'package:flutter/material.dart'; import 'package:flutter_signin_button2/flutter_signin_button2.dart'; class LoginScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Login'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ SignInButton( Buttons.Google, text: "Sign in with Google", onPressed: () { // 处理 Google 登录逻辑 }, ), SignInButton( Buttons.Facebook, text: "Sign in with Facebook", onPressed: () { // 处理 Facebook 登录逻辑 }, ), SignInButton( Buttons.Apple, text: "Sign in with Apple", onPressed: () { // 处理 Apple 登录逻辑 }, ), SignInButton( Buttons.Twitter, text: "Sign in with Twitter", onPressed: () { // 处理 Twitter 登录逻辑 }, ), ], ), ), ); } }
自定义按钮
SignInButton
小部件提供了多种自定义选项,例如:
- 按钮样式:你可以通过
Buttons
枚举选择不同的按钮样式。 - 按钮大小:你可以通过
mini
参数来设置按钮是否为迷你样式。 - 按钮文本:你可以通过
text
参数来设置按钮的文本。 - 按钮颜色:你可以通过
buttonColor
参数来自定义按钮的背景颜色。 - 文本颜色:你可以通过
textColor
参数来自定义按钮的文本颜色。
示例:自定义按钮样式
SignInButton(
Buttons.Google,
text: "Sign in with Google",
buttonColor: Colors.blue,
textColor: Colors.white,
onPressed: () {
// 处理 Google 登录逻辑
},
)