Flutter自适应引导页插件flutter_onboarding_screen_adaptive的使用
Flutter自适应引导页插件flutter_onboarding_screen_adaptive的使用
Onboarding Screen
flutter_onboarding_screen_adaptive
是一个 Flutter 插件,提供了一个可自定义的新用户引导页面。它包括一系列带有导航控件和动画的页面,旨在以用户友好的方式介绍应用的功能。
Created by @badiniibrahim
如果你喜欢我的工作,可以请我喝杯咖啡。感谢你的支持 ❤️
Screenshot
IOS
Android
Features
- 水平页面导航,支持滑动手势。
- 进度指示器显示当前的引导页面。
- “Next” 和 “Skip” 按钮方便用户操作。
- 页面之间的动画过渡。
- 使用 GetX 进行高效的状态管理。
Getting Started
在 pubspec.yaml
文件中添加依赖:
dependencies:
...
flutter_onboarding_screen_adaptive: latest_version
完整示例
以下是一个完整的示例,展示了如何使用 flutter_onboarding_screen_adaptive
:
import 'package:flutter/material.dart';
import 'package:flutter_onboarding_screen_adaptive/pages/onboarding_screen.dart';
import 'package:get/route_manager.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return GetMaterialApp(
home: OnboardingScreen(
pages: const [
PageOne(),
PageTwo(),
PageThree(),
],
onSkipSelected: () {
// 处理跳过操作
},
onGetStarted: () {
// 处理开始操作
},
selectedColor: Colors.blue,
unselectedColor: Colors.grey,
indicatorSize: 20.0,
skipText: "Skip",
btnBackgroundColor: Colors.blue,
),
);
}
}
class PageOne extends StatelessWidget {
const PageOne({super.key});
@override
Widget build(BuildContext context) {
return Column(children: [
Image.asset(
"assets/images/1.png",
),
const Center(
child: Text(
'Best choice for everyone.',
style: TextStyle(
fontSize: 30,
color: Colors.black,
fontFamily: 'Gilroy',
),
),
)
]);
}
}
class PageTwo extends StatelessWidget {
const PageTwo({super.key});
@override
Widget build(BuildContext context) {
return Column(children: [
Image.asset(
"assets/images/2.png",
),
const Center(
child: Text(
textAlign: TextAlign.center,
'Teachers & Learners',
style: TextStyle(
fontSize: 30,
color: Colors.black,
fontFamily: 'Gilroy',
),
),
)
]);
}
}
class PageThree extends StatelessWidget {
const PageThree({super.key});
@override
Widget build(BuildContext context) {
return Column(children: [
const Center(
child: Text(
textAlign: TextAlign.center,
'Best platform for both.Anywhere. Accelerate Your Future and beyond.',
style: TextStyle(
fontSize: 30,
color: Colors.black,
fontFamily: 'Gilroy',
),
),
),
Image.asset(
"assets/images/3.png",
),
]);
}
}
Figma 链接
参数
pages
: (必需) - 表示引导页面的 widget 列表。selectedColor
: 选中的页面指示器颜色,默认为Colors.blue
。unselectedColor
: 未选中的页面指示器颜色,默认为Colors.grey
。indicatorSize
: 页面指示器的大小,默认为20.0
。skipText
: 跳过按钮的文本,默认为 “Skip”。onSkipSelected
: 跳过按钮被按下时的回调函数。btnBackgroundColor
: 导航按钮的背景颜色,默认为Colors.blue
。onGetStarted
: 开始按钮被按下时的回调函数。
在 LinkedIn 上与我联系。
更多关于Flutter自适应引导页插件flutter_onboarding_screen_adaptive的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter自适应引导页插件flutter_onboarding_screen_adaptive的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用flutter_onboarding_screen_adaptive
插件来实现自适应引导页的一个示例。这个插件可以帮助你轻松创建具有自适应布局和动画效果的引导页。
首先,确保你已经在pubspec.yaml
文件中添加了flutter_onboarding_screen_adaptive
依赖:
dependencies:
flutter:
sdk: flutter
flutter_onboarding_screen_adaptive: ^x.y.z # 请替换为最新版本号
然后,运行flutter pub get
来获取依赖。
接下来,你可以在你的Flutter项目中按照以下步骤使用flutter_onboarding_screen_adaptive
插件。
主程序文件 (main.dart)
import 'package:flutter/material.dart';
import 'package:flutter_onboarding_screen_adaptive/flutter_onboarding_screen_adaptive.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Onboarding Screen Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: OnboardingScreen(),
);
}
}
class OnboardingScreen extends StatelessWidget {
final List<Map<String, Object>> pages = [
{
'title': 'Welcome!',
'description': 'This is the first page of the onboarding process.',
'image': AssetImage('assets/images/page1.png'), // 替换为你的图片资源
},
{
'title': 'Features',
'description': 'Discover the amazing features of our app.',
'image': AssetImage('assets/images/page2.png'), // 替换为你的图片资源
},
{
'title': 'Get Started',
'description': 'Join the community and start exploring now!',
'image': AssetImage('assets/images/page3.png'), // 替换为你的图片资源
'buttons': [
OnboardingButton(
text: 'Skip',
onPressed: () {
Navigator.pushReplacementNamed(context, '/home');
},
),
OnboardingButton(
text: 'Get Started',
color: Colors.blue,
onPressed: () {
Navigator.pushReplacementNamed(context, '/home');
},
),
],
},
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: AdaptiveOnboardingScreen(
pages: pages,
dotsIndicatorColor: Colors.white,
dotsDecoratorColor: Colors.grey,
completeButtonText: 'Done',
onPageChanged: (index) {
print('Page changed to: $index');
},
onComplete: () {
Navigator.pushReplacementNamed(context, '/home');
},
),
);
}
}
图片资源
确保你已经在assets
文件夹中添加了引导页所需的图片资源,并在pubspec.yaml
中声明它们:
flutter:
assets:
- assets/images/page1.png
- assets/images/page2.png
- assets/images/page3.png
路由配置
你可能还需要在你的应用中配置路由,以便在引导页完成后导航到其他页面。你可以在main.dart
文件中添加一个简单的路由配置:
import 'package:flutter/material.dart';
import 'package:flutter_onboarding_screen_adaptive/flutter_onboarding_screen_adaptive.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Onboarding Screen Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
routes: {
'/': (context) => OnboardingScreen(),
'/home': (context) => HomeScreen(),
},
initialRoute: '/',
);
}
}
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home Screen'),
),
body: Center(
child: Text('Welcome to the Home Screen!'),
),
);
}
}
// ... (OnboardingScreen class remains the same)
以上代码展示了如何使用flutter_onboarding_screen_adaptive
插件来创建一个包含三页引导页的Flutter应用,并在完成后导航到主屏幕。你可以根据需要调整标题、描述、图片和按钮等配置。