Flutter新用户引导插件onboarding_plus的使用

Flutter新用户引导插件onboarding_plus的使用

本包提供了轻松创建引导页面的功能。

特性

您可以编辑颜色和文本样式。

图片1 图片2 GIF

开始使用

pubspec.yaml文件中添加最新版本的onboarding_plus

使用方法

在应用主体中调用OnboardingViewer()小部件。

[@override](/user/override)
Widget build(BuildContext context) {
  return OnboardingViewer(
    pageList: onboardingList,
    pageWidth: MediaQuery.of(context).size.width, 
    pageHeight: MediaQuery.of(context).size.height, 
    backgroundColor: Colors.black,
    skipButtonColor: Colors.purple,
    skipButtonTextStyle: const TextStyle(color: Colors.white),
    nextButtonTextStyle: const TextStyle(color: Colors.white),
    doneButtonTextStyle: const TextStyle(color: Colors.white),
    deactiveDotColor: Colors.black,
    activatedDotColor: Colors.purple,
    nextButtonColor: Colors.purple,
    onPressedSkip: onPressedSkip,
    onPressedDone: onPressedDone,
    dotSize: Size(12, 12),
    bottomPadding: 110, 
    topPadding: 0,
    borderColor: Colors.purple,
    borderWidth: 1,
  );
}

完整示例

以下是一个完整的示例,展示了如何使用onboarding_plus插件创建一个引导页面。

import 'package:flutter/material.dart';
import 'package:onboarding_plus/onboarding_plus.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({
    Key? key,
  }) : super(key: key);

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: "Title",
      debugShowCheckedModeBanner: false,
      home: OnboardingPage(),
    );
  }
}

class OnboardingPage extends StatefulWidget {
  const OnboardingPage({super.key});

  [@override](/user/override)
  State<OnboardingPage> createState() => _OnboardingPageState();
}

class _OnboardingPageState extends State<OnboardingPage> {
  List<dynamic> onboardingList = const [
    Onboarding1(),
    Onboarding1(),
  ];

  Future<void> onPressedSkip() async {}

  Future<void> onPressedDone() async {}

  [@override](/user/override)
  Widget build(BuildContext context) {
    return OnboardingViewer(
      isSkipShow: false,
      skipText: "Skip",
      doneText: "Done",
      nextText: "Next",
      nextBorderRadius: BorderRadius.circular(5),
      skipBorderRadius: BorderRadius.circular(5),
      pageList: onboardingList,
      pageWidth: MediaQuery.of(context).size.width, //context.width,
      pageHeight: MediaQuery.of(context).size.height, //context.height,
      backgroundColor: Colors.green,
      skipButtonColor: Colors.purple,
      deactiveDotColor: Colors.black,
      activatedDotColor: Colors.purple,
      nextButtonColor: Colors.purple,
      borderColor: Colors.purple,
      skipButtonTextStyle: const TextStyle(color: Colors.white),
      nextButtonTextStyle: const TextStyle(color: Colors.white),
      doneButtonTextStyle: const TextStyle(color: Colors.white),
      onPressedSkip: onPressedSkip,
      onPressedDone: onPressedDone,
      dotSize: const Size(12, 12),
      bottomPadding: 30,
      topPadding: 0,
      borderWidth: 1,
    );
  }
}

class Onboarding1 extends StatelessWidget {
  const Onboarding1({
    Key? key,
  }) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      crossAxisAlignment: CrossAxisAlignment.center,
      mainAxisAlignment: MainAxisAlignment.start,
      children: const [
        SizedBox(height: 80),
        Text("Industry. Lorem Ipsum"),
        SizedBox(height: 40),
        Text("unknown printer took a galley of type and scrambled it to make"),
        SizedBox(height: 40),
        FlutterLogo(size: 100),
        SizedBox(height: 40),
      ],
    );
  }
}
1 回复

更多关于Flutter新用户引导插件onboarding_plus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


onboarding_plus 是一个用于 Flutter 应用的新用户引导插件,它可以帮助用户在首次使用应用时了解应用的基本功能和操作。以下是如何使用 onboarding_plus 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 onboarding_plus 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  onboarding_plus: ^1.0.0  # 请确保使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入包

在你的 Dart 文件中导入 onboarding_plus 包:

import 'package:onboarding_plus/onboarding_plus.dart';

3. 创建引导页面

使用 Onboarding 组件来创建引导页面。你可以通过 pages 参数来定义引导页面的内容。

class OnboardingExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Onboarding(
      pages: [
        OnboardingPage(
          title: 'Welcome to the App',
          body: 'This is a simple onboarding example.',
          image: Image.asset('assets/images/welcome.png'),
        ),
        OnboardingPage(
          title: 'Explore Features',
          body: 'Discover all the features of the app.',
          image: Image.asset('assets/images/features.png'),
        ),
        OnboardingPage(
          title: 'Get Started',
          body: 'Start using the app now!',
          image: Image.asset('assets/images/start.png'),
        ),
      ],
      onDone: () {
        // 用户完成引导后执行的操作
        Navigator.of(context).pushReplacement(
          MaterialPageRoute(builder: (context) => HomePage()),
        );
      },
      showSkipButton: true,
      skipText: 'Skip',
      nextText: 'Next',
      doneText: 'Get Started',
    );
  }
}

4. 启动引导页面

在你的应用启动时,或者在用户首次使用时,显示引导页面。你可以通过导航到 OnboardingExample 页面来实现:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: OnboardingExample(),
    );
  }
}

5. 自定义样式

你可以通过 OnboardingTheme 来自定义引导页面的样式:

Onboarding(
  pages: [
    // 你的页面
  ],
  theme: OnboardingTheme(
    titleTextStyle: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
    bodyTextStyle: TextStyle(fontSize: 16),
    imageAlignment: Alignment.center,
    backgroundColor: Colors.white,
    statusBarColor: Colors.blue,
  ),
  onDone: () {
    // 完成后的操作
  },
);

6. 处理用户跳过引导

如果用户选择跳过引导,你可以通过 onSkip 回调来处理:

Onboarding(
  pages: [
    // 你的页面
  ],
  onDone: () {
    // 完成后的操作
  },
  onSkip: () {
    // 用户跳过引导后的操作
    Navigator.of(context).pushReplacement(
      MaterialPageRoute(builder: (context) => HomePage()),
    );
  },
);
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!