FLUTTER INTRO SLIDER

一个插件,可以帮助您制作介绍页,以展示您应用的主要功能。您可以更改图片、按钮、文本样式、颜色等。创建介绍页从未如此快捷方便。

添加到 pubspec.yaml 文件

dependencies:
  intro_slider: ^1.0.8

导入

import 'package:intro_slider/intro_slider.dart';

演示

default | custom

示例

默认配置

default

class _MyAppState extends State<MyApp> {
  List<Slide> slides = new List();

  @override
  void initState() {
    super.initState();

    slides.add(
      new Slide(
        title: "ERASER",
        description: "Allow miles wound place the leave had. To sitting subject no improve studied limited",
        pathImage: "images/photo_eraser.png",
        backgroundColor: 0xfff5a623,
      ),
    );
    slides.add(
      new Slide(
        title: "PENCIL",
        description: "Ye indulgence unreserved connection alteration appearance",
        pathImage: "images/photo_pencil.png",
        backgroundColor: 0xff203152,
      ),
    );
    slides.add(
      new Slide(
        title: "RULER",
        description:
            "Much evil soon high in hope do view. Out may few northward believing attempted. Yet timed being songs marry one defer men our. Although finished blessing do of",
        pathImage: "images/photo_ruler.png",
        backgroundColor: 0xff9932CC,
      ),
    );
  }

  void onDonePress() {
    // TODO: go to next screen
  }

  void onSkipPress() {
    // TODO: go to next screen
  }

  @override
  Widget build(BuildContext context) {
    return new IntroSlider(
      slides: this.slides,
      onDonePress: this.onDonePress,
      onSkipPress: this.onSkipPress,
    );
  }
}

自定义配置

custom

class _MyAppState extends State<MyApp> {
  List<Slide> slides = new List();

  @override
  void initState() {
    super.initState();

    slides.add(
      new Slide(
        title: "SCHOOL",
        styleTitle:
            TextStyle(color: Color(0xffD02090), fontSize: 30.0, fontWeight: FontWeight.bold, fontFamily: 'RobotoMono'),
        description: "Allow miles wound place the leave had. To sitting subject no improve studied limited",
        styleDescription:
            TextStyle(color: Color(0xffD02090), fontSize: 20.0, fontStyle: FontStyle.italic, fontFamily: 'Raleway'),
        pathImage: "images/photo_school.png",
        backgroundColor: 0xFFFFDEAD,
      ),
    );
    slides.add(
      new Slide(
        title: "MUSEUM",
        styleTitle:
            TextStyle(color: Color(0xffD02090), fontSize: 30.0, fontWeight: FontWeight.bold, fontFamily: 'RobotoMono'),
        description: "Ye indulgence unreserved connection alteration appearance",
        styleDescription:
            TextStyle(color: Color(0xffD02090), fontSize: 20.0, fontStyle: FontStyle.italic, fontFamily: 'Raleway'),
        pathImage: "images/photo_museum.png",
        backgroundColor: 0xffFFFACD,
      ),
    );
    slides.add(
      new Slide(
        title: "COFFEE",
        styleTitle:
            TextStyle(color: Color(0xffD02090), fontSize: 30.0, fontWeight: FontWeight.bold, fontFamily: 'RobotoMono'),
        description:
            "Much evil soon high in hope do view. Out may few northward believing attempted. Yet timed being songs marry one defer men our. Although finished blessing do of",
        styleDescription:
            TextStyle(color: Color(0xffD02090), fontSize: 20.0, fontStyle: FontStyle.italic, fontFamily: 'Raleway'),
        pathImage: "images/photo_coffee_shop.png",
        backgroundColor: 0xffFFF8DC,
      ),
    );
  }

  void onDonePress() {
    // TODO: go to next screen
  }

  void onSkipPress() {
    // TODO: go to next screen
  }

  Widget renderNextBtn() {
    return Icon(
      Icons.navigate_next,
      color: Color(0xffD02090),
      size: 35.0,
    );
  }

  Widget renderDoneBtn() {
    return Icon(
      Icons.done,
      color: Color(0xffD02090),
    );
  }

  Widget renderSkipBtn() {
    return Icon(
      Icons.skip_next,
      color: Color(0xffD02090),
    );
  }

  @override
  Widget build(BuildContext context) {
    return new IntroSlider(
      // List slides
      slides: this.slides,

      // Skip button
      renderSkipBtn: this.renderSkipBtn(),
      onSkipPress: this.onSkipPress,
      colorSkipBtn: 0x33000000,
      highlightColorSkipBtn: 0xff000000,

      // Next, Done button
      onDonePress: this.onDonePress,
      renderNextBtn: this.renderNextBtn(),
      renderDoneBtn: this.renderDoneBtn(),
      colorDoneBtn: 0x33000000,
      highlightColorDoneBtn: 0xff000000,

      // Dot indicator
      colorDot: 0x33D02090,
      colorActiveDot: 0xffD02090,
      sizeDot: 13.0,
    );
  }
}

选项

Slide 对象属性

名称 类型 默认值 描述
标题
title 字符串 "" 更改顶部的文本标题
styleTitle TextStyle 白色,粗体,字号30.0 文本标题的样式
marginTitle EdgeInsets 上:70.0,下:50.0 文本标题的边距
Image
pathImage 字符串 "" 指向您的本地图片路径
widthImage 双精度 250.0 图片的宽度
heightImage 双精度 250.0 图片的高度
onImagePress 功能 无操作 图片被按下时触发
描述
描述 字符串 "" 更改底部的文本描述
maxLineTextDescription 字符串 100 文本描述的最大行数
styleDescription TextStyle 白色,字号18.0 文本描述的样式
marginDescription EdgeInsets 左、右=20.0,上、下=50.0 文本描述的边距
后台
backgroundColor 颜色 Color(0xfff5a623) 背景标签颜色
colorBegin 颜色 渐变标签颜色开始
colorEnd 颜色 渐变标签颜色结束
directionColorBegin AlignmentGeometry 颜色开始方向
directionColorEnd AlignmentGeometry 颜色结束方向

IntroSlider widget 属性

名称 类型 默认值 描述
幻灯片
slides 幻灯片 无默认值,必需 Slide 对象数组
跳过按钮
renderSkipBtn Widget 带文本 SKIP 的按钮 渲染您自己的 Skip 按钮
onSkipPress 功能 无操作 按下 Skip 按钮时触发
nameSkipBtn 字符串 "跳过" 将 SKIP 更改为您想要的任何文本
styleNameSkipBtn TextStyle 白色 Skip 按钮文本样式
colorSkipBtn 颜色 透明 Skip 按钮颜色
highlightColorSkipBtn 颜色 Color(0x4dffffff) Skip 按钮按下时的颜色
isShowSkipBtn 布尔值 显示或隐藏 Skip 按钮
borderRadiusSkipBtn 双精度 30.0 圆角 Skip 按钮
下一步按钮
renderNextBtn Widget 带文本 NEXT 的按钮 渲染您自己的 Next 按钮
nameNextBtn 字符串 "下一步" 将 SKIP 更改为您想要的任何文本
borderRadiusNextBtn 双精度 30.0 圆角 Next 按钮
完成按钮
renderDoneBtn Widget 带文本 DONE 的按钮 渲染您自己的 Done 按钮
onDonePress 功能 无操作 按下 Skip 按钮时触发
nameDoneBtn 字符串 "完成" Skip 按钮文本样式
styleNameDoneBtn TextStyle 白色 Skip 按钮颜色
colorDoneBtn 颜色 透明 Skip 按钮按下时的颜色
highlightColorDoneBtn 颜色 Color(0x4dffffff) 显示或隐藏 Skip 按钮
borderRadiusDoneBtn 双精度 30.0 圆角 Done 按钮
点指示器
isShowDotIndicator 布尔值 显示或隐藏点指示器
colorDot 颜色 Color(0x80000000) 未激活时点指示器的颜色
colorActiveDot 颜色 Color(0xffffffff) 激活时点指示器的颜色
sizeDot 双精度 8.0 每个点的大小

GitHub

https://github.com/duytq94/flutter-intro-slider