Flutter页面切换动画插件flutter_liquid_swipe的使用

Flutter页面切换动画插件flutter_liquid_swipe的使用

简介

Flutter Liquid Swipe 是一个 Flutter 插件,可以让你在应用程序中添加液态滑动引导页。这是对 Luke Pighetti 的实现的一个分支。

截图

安装

要安装 flutter_liquid_swipe 插件,请按照以下步骤操作:

  1. 打开你的终端或命令提示符。
  2. 运行以下命令来安装插件:
    flutter pub add flutter_liquid_swipe
    
  3. 一旦插件安装完成,你可以在你的 Flutter 项目中导入它:
    import 'package:flutter_liquid_swipe/flutter_liquid_swipe.dart';
    
  4. 你现在可以开始在 Flutter 项目中使用 flutter_liquid_swipe 插件了。

示例

以下是一个简单的示例,展示了如何使用 flutter_liquid_swipe 插件创建一个具有液态滑动效果的引导页。

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

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

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return const MaterialApp(home: LiquidSwipeOnboarding());
  }
}

class LiquidSwipeOnboarding extends StatefulWidget {
  const LiquidSwipeOnboarding({super.key});

  [@override](/user/override)
  State<LiquidSwipeOnboarding> createState() => _LiquidSwipeOnboardingState();
}

class _LiquidSwipeOnboardingState extends State<LiquidSwipeOnboarding> {
  final _key = GlobalKey<LiquidSwipeState>();

  LiquidSwipeState? get liquidSwipeController => _key.currentState;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      body: LiquidSwipe(
        key: _key,
        children: [
          // 第一页
          FlutterLiquidSwipeCard(
            onTapName: () {},
            onSkip: () {},
            name: "Transcribe",
            action: "Skip",
            title: "SpeakEasy",
            subtitle: "Empowering Communication",
            body: "Revolutionize the way you interact with the world",
            buttonColor: Colors.black,
            titleStyle: TextStyle(
              fontSize: 20,
              color: Colors.grey.shade700,
            ),
            subtitleStyle: TextStyle(
              fontSize: 23,
              color: Colors.grey.shade900,
            ),
            bodyStyle: TextStyle(
              fontSize: 18,
              color: Colors.green.shade400,
            ),
            gradient: const LinearGradient(
              colors: [Colors.white, Colors.white],
              begin: Alignment.topLeft,
              end: Alignment.bottomRight,
            ),
            child: ClipRRect(
              borderRadius: BorderRadius.circular(10),
              child: Image.network("https://picsum.photos/300/200"),
            ),
          ),
          // 第二页
          FlutterLiquidSwipeCard(
            onTapName: () => liquidSwipeController?.previous(),
            onSkip: () {},
            name: "Back",
            action: "Done",
            title: "Cutting Edge Technology",
            subtitle: "With an Effortless Experience",
            body: "Our innovative speech-to-text solution offers precise transcription",
            buttonColor: Colors.white,
            titleStyle: const TextStyle(
              fontSize: 20,
              color: Colors.black,
            ),
            subtitleStyle: TextStyle(
              fontSize: 23,
              color: Colors.grey.shade400,
            ),
            bodyStyle: TextStyle(
              fontSize: 18,
              color: Colors.white.withOpacity(0.8),
            ),
            gradient: const LinearGradient(
              colors: [Colors.grey, Colors.green],
              begin: Alignment.topRight,
              end: Alignment.bottomLeft,
            ),
            child: ClipRRect(
              borderRadius: BorderRadius.circular(10),
              child: Image.network("https://picsum.photos/350/200"),
            ),
          ),
        ],
      ),
    );
  }
}

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

1 回复

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


当然,以下是一个关于如何使用 flutter_liquid_swipe 插件来实现 Flutter 页面切换动画的示例代码。flutter_liquid_swipe 插件允许你创建类似于 Tinder 卡片滑动效果的页面切换动画。

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

dependencies:
  flutter:
    sdk: flutter
  flutter_liquid_swipe: ^3.0.0  # 请检查最新版本号

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

接下来是一个完整的示例代码,展示如何使用 flutter_liquid_swipe 来实现页面切换动画:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Liquid Swipe Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: LiquidSwipePage(),
    );
  }
}

class LiquidSwipePage extends StatefulWidget {
  @override
  _LiquidSwipePageState createState() => _LiquidSwipePageState();
}

class _LiquidSwipePageState extends State<LiquidSwipePage> {
  final List<String> pages = [
    'Page 1',
    'Page 2',
    'Page 3',
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Liquid Swipe Example'),
      ),
      body: LiquidSwipe(
        pages: List.generate(
          pages.length,
          (index) {
            return Center(
              child: Text(
                pages[index],
                style: TextStyle(fontSize: 24),
              ),
            );
          },
        ),
        waveAnimationConfig: WaveAnimationConfig(
          animationCurve: Curves.easeInOut,
          duration: Duration(milliseconds: 1000),
          heightPercentage: 0.15,
        ),
        onPageChangeCallback: (int currentPage) {
          print('Current page index: $currentPage');
        },
        enableLoop: true,
        borderRadius: 25.0,
      ),
    );
  }
}

代码解释:

  1. 依赖导入:确保在 pubspec.yaml 中添加 flutter_liquid_swipe 依赖。

  2. 主应用MyApp 是一个简单的 Material 应用,它包含了一个 LiquidSwipePage 页面。

  3. 页面状态管理LiquidSwipePage 是一个有状态的组件,用于管理页面数据和动画。

  4. 页面列表pages 列表包含了三个页面标题。

  5. LiquidSwipe

    • pages:使用 List.generate 方法生成页面列表,每个页面都是一个居中的文本。
    • waveAnimationConfig:配置波浪动画,包括动画曲线、持续时间和高度百分比。
    • onPageChangeCallback:页面切换时的回调函数,这里简单地打印当前页面索引。
    • enableLoop:启用循环切换。
    • borderRadius:页面卡片的圆角半径。

运行这个示例代码,你将看到一个包含三个页面的应用,可以通过滑动来切换页面,并且每个页面切换时都会有一个波浪动画效果。

希望这个示例能帮助你理解如何在 Flutter 中使用 flutter_liquid_swipe 插件来实现页面切换动画。如果有更多问题,欢迎继续提问!

回到顶部