FLUTTER INTRO SLIDER
一个插件,可以帮助您制作介绍页,以展示您应用的主要功能。您可以更改图片、按钮、文本样式、颜色等。创建介绍页从未如此快捷方便。
添加到 pubspec.yaml 文件
dependencies:
intro_slider: ^1.0.8
导入
import 'package:intro_slider/intro_slider.dart';
演示
| 
示例
默认配置

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,
);
}
}
自定义配置

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 | 每个点的大小 |