Flutter旋转扩展工具栏插件rotate_expand_toolbar的使用

Flutter旋转扩展工具栏插件rotate_expand_toolbar的使用

TODO: Rotate expand toolbar.

特性

TODO: A set of icon buttons that can be rotated and expanded.

使用方法

包含一些简短且有用的示例,供包用户参考。更长的示例添加到/example文件夹。

Stack(
    children: [
        RotateExpandToolbar(
            expandDuration: const Duration(milliseconds: 500),
            color: Colors.blue,
            iconSize: 24,
            children: [
                RotateExpandToolbarItem(
                    icon: Icons.play_circle_outline_outlined,
                    color: Colors.amber,
                    onTap: () {},
                ),
                RotateExpandToolbarItem(
                    icon: Icons.circle_notifications_outlined,
                    color: Colors.green,
                    onTap: () {},
                ),
                RotateExpandToolbarItem(
                    icon: Icons.flag_circle_outlined,
                    color: Colors.red,
                    onTap: () {},
                ),
                RotateExpandToolbarItem(
                    icon: Icons.add_shopping_cart_outlined,
                    tooltip: "Shopping Cart",
                    onTap: () {},
                ),
            ],
        )
    ],
)

完整示例Demo

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

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

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

  // This widget is the root of your application.
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Rotate Expand Toolbar',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Rotate Expand Toolbar'),
    );
  }
}

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> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Padding(
        padding: const EdgeInsets.all(20),
        child: Stack(
          children: [
            Positioned(
              left: 100,
              top: 20,
              child: Container(
                padding: const EdgeInsets.all(8),
                height: 40,
                decoration: BoxDecoration(
                  color: Colors.amber.withOpacity(0.5),
                  border: Border.all(color: Colors.black, width: 0.5),
                  borderRadius: BorderRadius.circular(20),
                ),
                child: Stack(
                  children: [
                    RotateExpandToolbar(
                      expandDuration: const Duration(milliseconds: 500),
                      color: Colors.blue,
                      backgroundColor: Colors.yellow,
                      iconSize: 24,
                      children: [
                        RotateExpandToolbarItem(
                          icon: Icons.play_circle_outline_outlined,
                          color: Colors.amber,
                          onTap: () {},
                        ),
                        RotateExpandToolbarItem(
                          icon: Icons.circle_notifications_outlined,
                          color: Colors.green,
                          onTap: () {},
                        ),
                        RotateExpandToolbarItem(
                          icon: Icons.flag_circle_outlined,
                          color: Colors.red,
                          onTap: () {},
                        ),
                        RotateExpandToolbarItem(
                          icon: Icons.add_shopping_cart_outlined,
                          tooltip: "Shopping Cart",
                          onTap: () {},
                        ),
                      ],
                    )
                  ],
                ),
              ),
            ),
          ],
        ),
      ),
      // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

更多关于Flutter旋转扩展工具栏插件rotate_expand_toolbar的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter旋转扩展工具栏插件rotate_expand_toolbar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


rotate_expand_toolbar 是一个 Flutter 插件,用于创建一个可以旋转和扩展的工具栏。它可以用于创建具有动态交互效果的工具栏,例如在用户点击或滑动时展开或旋转工具栏项。

以下是如何在 Flutter 项目中使用 rotate_expand_toolbar 插件的步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 rotate_expand_toolbar 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  rotate_expand_toolbar: ^1.0.0  # 请检查最新版本

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

2. 导入插件

在需要使用 rotate_expand_toolbar 的 Dart 文件中导入插件:

import 'package:rotate_expand_toolbar/rotate_expand_toolbar.dart';

3. 使用 RotateExpandToolbar

你可以使用 RotateExpandToolbar 组件来创建一个可旋转和扩展的工具栏。下面是一个简单的示例:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Rotate Expand Toolbar Example'),
        ),
        body: Center(
          child: RotateExpandToolbar(
            icon: Icons.menu,
            items: [
              RotateExpandToolbarItem(
                icon: Icons.home,
                onTap: () {
                  print('Home tapped');
                },
              ),
              RotateExpandToolbarItem(
                icon: Icons.settings,
                onTap: () {
                  print('Settings tapped');
                },
              ),
              RotateExpandToolbarItem(
                icon: Icons.favorite,
                onTap: () {
                  print('Favorite tapped');
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

4. 解释代码

  • RotateExpandToolbar 是一个可以旋转和扩展的工具栏组件。
  • icon 参数指定了工具栏的主图标,通常是菜单图标。
  • items 参数是一个 RotateExpandToolbarItem 列表,每个项都有一个图标和一个点击事件处理程序。

5. 运行项目

保存文件并运行项目,你将看到一个可旋转和扩展的工具栏。点击主图标时,工具栏项会展开并旋转。

6. 自定义

你可以通过调整 RotateExpandToolbar 的参数来自定义工具栏的外观和行为,例如:

  • iconSize:设置主图标的大小。
  • itemSize:设置工具栏项的大小。
  • animationDuration:设置动画持续时间。
  • curve:设置动画曲线。
RotateExpandToolbar(
  icon: Icons.menu,
  iconSize: 32.0,
  itemSize: 28.0,
  animationDuration: Duration(milliseconds: 500),
  curve: Curves.easeInOut,
  items: [
    RotateExpandToolbarItem(
      icon: Icons.home,
      onTap: () {
        print('Home tapped');
      },
    ),
    RotateExpandToolbarItem(
      icon: Icons.settings,
      onTap: () {
        print('Settings tapped');
      },
    ),
    RotateExpandToolbarItem(
      icon: Icons.favorite,
      onTap: () {
        print('Favorite tapped');
      },
    ),
  ],
)
回到顶部