Flutter引导页插件fancy_intro_carousel_slider的使用

Flutter引导页插件fancy_intro_carousel_slider的使用

Fancy Intro Carousel Slider 包让你能够为你的 Flutter 应用添加漂亮的引导页。

安装

  1. 将最新版本的包添加到你的 pubspec.yaml 文件中(然后运行 dart pub get):
dependencies:
  fancy_intro_carousel_slider: ^0.0.3
  1. 导入包并在你的 Flutter 应用中使用它:
import 'package:fancy_intro_carousel_slider/fancy_intro_carousel_slider.dart';

示例

你可以修改多个属性:

  • items
  • dotHeight
  • activeDot
  • disabledDot
  • innerPadding
  • actionButton
  • scrollDirection
  • physics
  • pageController
class FancyIntroCarouselSliderScreen extends StatelessWidget {  
  const FancyIntroCarouselSliderScreen({Key? key}) : super(key: key);  
  
  [@override](/user/override)  
  Widget build(BuildContext context) {  
    return Scaffold(  
      body: FancyIntroCarouselSlider(
          actionButton: Padding(
            padding: const EdgeInsets.only(bottom: 20),
            child: Padding(
              padding: const EdgeInsets.symmetric(horizontal: 10),
              child: Container(
                width: 300,
                height: 55,
                decoration: AppStyles.mainBlueColorBoxDecorationStyle,
                child: const Material(
                  color: AppPalette.transparentColor,
                  child: Center(
                      child: Text("Let's start",
                          style: AppStyles.whiteColor15spw700NotoSans)),
                ),
              ),
            ),
          ),
          pageController: pageController,
          dotHeight: 8,
          innerPadding: const EdgeInsets.only(left: 4),
          activeDot: AnimatedContainer(
            duration: const Duration(milliseconds: 250),
            margin: const EdgeInsets.only(right: 7),
            height: 8,
            width: 19,
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(30),
              color: Colors.blue,
            ),
          ),
          disabledDot: AnimatedContainer(
            duration: const Duration(milliseconds: 250),
            margin: const EdgeInsets.only(right: 7),
            height: 8,
            width: 10,
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(30),
              color: Colors.grey,
            ),
          ),
          items: [
            Column(
              children: [
                Container(
                  width: 320,
                  constraints: const BoxConstraints(maxHeight: 400),
                  decoration: BoxDecoration(
                    image: DecorationImage(
                      image: svg_provider.Svg(img),
                      fit: BoxFit.fitWidth,
                    ),
                  ),
                ),
                Padding(
                  padding: const EdgeInsets.symmetric(horizontal: 16),
                  child: Text(
                    title,
                    textAlign: TextAlign.center,
                    style: AppStyles.mainHeadlineColorw70020spPoppins,
                  ),
                ),
                const SizedBox(
                  height: 13,
                ),
                Padding(
                  padding: const EdgeInsets.symmetric(horizontal: 34),
                  child: Text(
                    desc,
                    textAlign: TextAlign.center,
                    style: AppStyles.mainHeadlineColorw50012spPoppinsLineHeight,
                  ),
                )
              ],
            )
          ],
        ),
    );  
  }  
}

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

1 回复

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


当然,以下是如何在Flutter应用中使用fancy_intro_carousel_slider插件来实现引导页的示例代码。

首先,确保你已经在pubspec.yaml文件中添加了fancy_intro_carousel_slider依赖:

dependencies:
  flutter:
    sdk: flutter
  fancy_intro_carousel_slider: ^latest_version # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

接下来,你可以按照以下步骤在你的Flutter应用中实现引导页:

  1. 导入必要的包
import 'package:flutter/material.dart';
import 'package:fancy_intro_carousel_slider/fancy_intro_carousel_slider.dart';
  1. 定义引导页内容
List<SlideModel> slides = [
  SlideModel(
    title: "Welcome!",
    description: "This is your first slide.",
    imagePath: "assets/images/slide1.png", // 确保你有这个图片资源
    bgColor: Colors.blue,
    titleTextStyle: TextStyle(color: Colors.white, fontSize: 24, fontWeight: FontWeight.bold),
    descTextStyle: TextStyle(color: Colors.white, fontSize: 18),
    skipBtnColor: Colors.white,
    nextBtnColor: Colors.white,
    dotColor: Colors.white,
    activeDotColor: Colors.blueAccent,
  ),
  SlideModel(
    title: "Features",
    description: "Discover our amazing features.",
    imagePath: "assets/images/slide2.png",
    bgColor: Colors.green,
    titleTextStyle: TextStyle(color: Colors.white, fontSize: 24, fontWeight: FontWeight.bold),
    descTextStyle: TextStyle(color: Colors.white, fontSize: 18),
    skipBtnColor: Colors.white,
    nextBtnColor: Colors.white,
    dotColor: Colors.white,
    activeDotColor: Colors.greenAccent,
  ),
  // 可以继续添加更多SlideModel
];
  1. 在主应用中使用FancyIntroCarouselSlider
void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: IntroScreen(
        slides: slides,
        onDone: () {
          // 用户完成引导页后的操作,例如导航到主屏幕
          Navigator.pushReplacement(
            context,
            MaterialPageRoute(builder: (context) => HomeScreen()),
          );
        },
        onSkip: () {
          // 用户跳过引导页后的操作
          Navigator.pushReplacement(
            context,
            MaterialPageRoute(builder: (context) => HomeScreen()),
          );
        },
        showSkipButton: true,
        skipText: "Skip",
        doneText: "Done",
        dotBgColor: Colors.grey,
        activeDotColor: Colors.blue,
        nextBtn: NextButton(
          color: Colors.blue,
          icon: Icons.arrow_forward,
        ),
        skipBtn: SkipButton(
          color: Colors.blue,
          textStyle: TextStyle(color: Colors.white),
        ),
      ),
    );
  }
}

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!"),
      ),
    );
  }
}

以上代码展示了如何使用fancy_intro_carousel_slider插件来创建一个包含多个引导页的滑动视图。每个引导页都包含标题、描述、背景图片和按钮样式等自定义选项。当用户完成引导页或跳过引导页时,可以导航到主屏幕或其他指定页面。

请确保你的项目中包含所需的图片资源,并根据实际需求调整引导页的内容和样式。

回到顶部