Flutter垂直页面切换插件vertical_page_stepper的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter垂直页面切换插件vertical_page_stepper的使用

VerticalPageStepper 是一个简单的可定制化步骤指示器。以下是如何使用它的详细指南。

特性

使用方法

请查看示例项目以更好地理解。

VerticalPageStepper(
  pageController: pageController,
  indicatorSettings: StepperIndicatorSettings(
    backgroundColor: Colors.grey.shade300,
    opacity: 0.5,
  ),
  steps: const [
    Step1(),
    Step2(),
    Step3(),
    Step4(),
    Step5(),
  ],
);

步骤应该扩展自 VerticalPageStep 类。

class VerticalPageStep {
  /// 创建一个步骤对象,用于 [VerticalPageStepper]。
  ///
  /// 参数 [title] 和 [content] 不得为空。
  const VerticalPageStep({
    required this.title,
    required this.content,
    this.indicator,
    this.indicatorBackgroundColor,
  });

  /// 步骤的标题,通常描述该步骤。
  final Widget title;

  /// 步骤的内容,出现在 [title] 下方。
  final Widget content;

  /// 指示器小部件,位于 `CircleAvatar` 中。
  /// 通常是图标。
  final Widget? indicator;

  /// 定义步骤特殊指示器背景颜色。
  ///
  /// 当前值会覆盖 `StepperIndicatorSettings` 中的指示器颜色。
  final Color? indicatorBackgroundColor;
}

可用的 StepperIndicatorSettings 参数:

/// 指示器半径,当步骤为当前或已通过时
final double activeRadius;

/// 指示器半径,当其为下一个步骤时
final double radius;

/// 指示器从左边的填充值
final double leftPadding;

/// 指示器背景颜色
final Color? backgroundColor;

/// 当前或已通过的步骤时,指示器背景颜色不透明度。
///
/// 这个值在步骤为下一个步骤时为 0.5
final double opacity;

示例代码

以下是完整的示例代码,展示了如何使用 VerticalPageStepper 插件。

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late PageController pageController;

  [@override](/user/override)
  void initState() {
    super.initState();
    pageController = PageController(initialPage: 0);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('垂直页面切换示例'),
      ),
      body: Center(
        child: VerticalPageStepper(
          pageController: pageController,
          indicatorSettings: StepperIndicatorSettings(
            backgroundColor: Colors.grey.shade300,
            opacity: 0.5,
          ),
          steps: const [
            Step1(),
            Step2(),
            Step3(),
            Step4(),
            Step5(),
          ],
        ),
      ),
    );
  }
}

class Step1 extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text('步骤1'),
        Text('这是步骤1的内容'),
      ],
    );
  }
}

class Step2 extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text('步骤2'),
        Text('这是步骤2的内容'),
      ],
    );
  }
}

class Step3 extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text('步骤3'),
        Text('这是步骤3的内容'),
      ],
    );
  }
}

class Step4 extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text('步骤4'),
        Text('这是步骤4的内容'),
      ],
    );
  }
}

class Step5 extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      children: [
        Text('步骤5'),
        Text('这是步骤5的内容'),
      ],
    );
  }
}

更多关于Flutter垂直页面切换插件vertical_page_stepper的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter垂直页面切换插件vertical_page_stepper的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何使用 vertical_page_stepper 插件来实现 Flutter 应用中垂直页面切换的示例代码。vertical_page_stepper 插件允许你在 Flutter 应用中创建垂直滚动的向导页面。

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

dependencies:
  flutter:
    sdk: flutter
  vertical_page_stepper: ^x.y.z  # 请将 x.y.z 替换为最新版本号

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

以下是一个完整的示例代码,展示了如何使用 vertical_page_stepper 插件:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Vertical Page Stepper Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: VerticalPageStepperDemo(),
    );
  }
}

class VerticalPageStepperDemo extends StatefulWidget {
  @override
  _VerticalPageStepperDemoState createState() => _VerticalPageStepperDemoState();
}

class _VerticalPageStepperDemoState extends State<VerticalPageStepperDemo> {
  final List<String> titles = [
    'Page 1',
    'Page 2',
    'Page 3',
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Vertical Page Stepper Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: VerticalPageStepper(
          controller: PageController(initialPage: 0),
          onPageChanged: (int page) {
            print('Page changed to: $page');
          },
          itemCount: titles.length,
          itemBuilder: (BuildContext context, int index) {
            return Center(
              child: Text(titles[index], style: TextStyle(fontSize: 24)),
            );
          },
        ),
      ),
    );
  }
}

解释

  1. 依赖添加:在 pubspec.yaml 中添加 vertical_page_stepper 依赖。

  2. 主应用MyApp 类是应用的入口,它创建了一个 MaterialApp 并设置了主页为 VerticalPageStepperDemo

  3. VerticalPageStepperDemo:这是一个有状态的组件,它包含了一个 titles 列表,用于显示每个页面的标题。

  4. VerticalPageStepper

    • controller:用于控制页面的滚动,这里我们初始化了 PageController 并设置初始页面为 0。
    • onPageChanged:当页面更改时调用的回调函数,这里我们简单地打印了当前页面索引。
    • itemCount:页面的总数。
    • itemBuilder:用于构建每个页面的回调函数,这里我们简单地返回了一个居中的文本组件显示页面标题。

运行这个示例代码,你会看到一个垂直滚动的向导页面,每个页面显示一个标题,你可以通过滑动来切换页面。

希望这个示例代码对你有帮助!如果有更多问题,欢迎继续提问。

回到顶部