Flutter演示文稿展示插件fluttershow_keynote的使用

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

Flutter演示文稿展示插件fluttershow_keynote的使用

pub package pub points style: very good analysis License: MIT

查看整个项目 FlutterShow⚡️!

描述

介绍FlutterShow Keynote库,它实现了流行的Keynote软件的所有幻灯片在Flutter中的应用。 专门为FlutterShow项目设计:FlutterShow,但也可以用于其他演示框架。

文档

整个文档可以在这里找到。

示例代码

以下是一个完整的示例,展示了如何使用fluttershow_keynote插件创建一个简单的演示文稿。

import 'package:flutter/material.dart';
import 'package:fluttershow_keynote/fluttershow_keynote.dart';
import 'package:fluttershow_keynote/slides/agenda/keynote_agenda_slide_variants.dart';
import 'package:fluttershow_keynote/slides/big_fact/keynote_big_fact_slide.dart';
import 'package:fluttershow_keynote/slides/title_and_bullets/keynote_title_and_bullets_slide_variants.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final PageController pageController = PageController();
  final slides = [
    KeynoteTitleAndBulletsSlideVariants.variantOne(
      titleText: "标题",
      subTitleText: "副标题",
      bulletPoints: ["欢迎", "到", "FlutterShow", "Keynote"],
    ),
    KeynoteAgendaSlideVariants.variantTwo(
        titleText: "标题", subTitleText: "副标题"),
    KeynoteBigFactSlide(
      titleText: "100%",
      subTitleText: "用Flutter制作",
      titleGradient: KeynoteGradients.quoteGradient,
      titleStyle: KeynoteTextstyles.title(),
      subtitleStyle: KeynoteTextstyles.subtitle(),
    )
  ];

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: PageView.builder(
        itemCount: slides.length,
        controller: pageController,
        itemBuilder: (context, index) => slides[index],
      ),
    );
  }
}

更多关于Flutter演示文稿展示插件fluttershow_keynote的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter演示文稿展示插件fluttershow_keynote的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何使用 fluttershow_keynote 插件来创建 Flutter 演示文稿的示例代码。这个插件允许你以编程方式创建和展示幻灯片。

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

dependencies:
  flutter:
    sdk: flutter
  fluttershow_keynote: ^最新版本号  # 请替换为实际最新版本号

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

接下来,你可以在你的 Flutter 应用中使用 fluttershow_keynote 来创建和展示幻灯片。以下是一个简单的示例代码:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter 演示文稿示例',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: KeynoteScreen(),
    );
  }
}

class KeynoteScreen extends StatefulWidget {
  @override
  _KeynoteScreenState createState() => _KeynoteScreenState();
}

class _KeynoteScreenState extends State<KeynoteScreen> {
  final List<Slide> slides = [
    Slide(
      title: '幻灯片 1',
      content: Text('这是第一张幻灯片。'),
      backgroundColor: Colors.white,
    ),
    Slide(
      title: '幻灯片 2',
      content: Center(
        child: Text(
          '这是第二张幻灯片,带有居中文本。',
          style: TextStyle(fontSize: 24),
        ),
      ),
      backgroundColor: Colors.grey[200]!,
      actions: [
        SlideAction(
          icon: Icons.arrow_forward,
          label: '下一页',
          onPressed: () {
            Navigator.of(context).push(MaterialPageRoute(
              builder: (context) => Slide3Screen(),
            ));
          },
        ),
      ],
    ),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter 演示文稿'),
      ),
      body: Keynote(
        slides: slides,
        onSlideChanged: (index) {
          print('当前幻灯片索引: $index');
        },
      ),
    );
  }
}

class Slide3Screen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('幻灯片 3'),
      ),
      body: Slide(
        title: '幻灯片 3',
        content: Text('这是第三张幻灯片,通过导航跳转而来。'),
        backgroundColor: Colors.blue[100]!,
      ),
    );
  }
}

在这个示例中,我们定义了一个简单的 KeynoteScreen,它包含了两个幻灯片。第一个幻灯片只有简单的文本内容,而第二个幻灯片则包含了一个居中的文本和一个动作按钮,点击该按钮会导航到第三张幻灯片。

Slide 类是 fluttershow_keynote 插件中定义的一个类,用于表示单个幻灯片。你可以根据需要自定义幻灯片的标题、内容、背景颜色以及动作按钮。

注意:

  1. fluttershow_keynote 插件的具体 API 可能会根据版本有所不同,请参考插件的官方文档以获取最新和最准确的 API 信息。
  2. 上述代码仅为示例,实际使用中可能需要根据具体需求进行调整。

希望这个示例代码能帮助你理解如何使用 fluttershow_keynote 插件来创建和展示 Flutter 演示文稿。

回到顶部