Flutter图标切换插件iconswitcher的使用
Flutter图标切换插件iconswitcher的使用
简介
IconSwitcher
是一个 Flutter 插件,它允许你在 AppBar
小部件上创建一个图标切换器。通过点击图标,可以触发动画并切换不同的视图或状态。
参数说明
以下是 IconSwitcher
的主要参数及其描述:
参数名称 | 描述 | 默认值 |
---|---|---|
width |
最终小部件的宽度 | required |
height |
最终小部件的高度 | required |
marginTop |
最终小部件的顶部间距 | required |
icon1 |
第一个图标 | required |
icon2 |
第二个图标 | required |
color1 |
第一个图标的颜色 | required |
color2 |
第二个图标的颜色 | required |
duration |
用户点击图标时的动画持续时间 | required |
firstIconSelectedColor |
第一个选择器的颜色 | Colors.redAccent |
secondIconSelectedColor |
第二个选择器的颜色 | Colors.orangeAccent |
curve |
动画的曲线类型 | Curves.bounceOut |
onChange |
函数 (bool):当第一个图标被选中时返回 true;否则返回 false | 无 |
使用示例
以下是一个完整的示例代码,展示了如何在 Flutter 中使用 IconSwitcher
插件来切换不同的屏幕视图。
import 'package:flutter/material.dart';
import 'package:iconswitcher/iconswitcher.dart';
// 定义主屏幕类
class Screen extends StatefulWidget {
[@override](/user/override)
State<StatefulWidget> createState() {
return _Screen();
}
}
// 定义主屏幕状态类
class _Screen extends State<Screen> with TickerProviderStateMixin {
bool left = true; // 初始状态为左侧图标被选中
Duration duration = Duration(milliseconds: 400); // 动画持续时间为 400 毫秒
[@override](/user/override)
Widget build(BuildContext context) {
double marginTop = 1.5; // 图标顶部间距
double height = kToolbarHeight - marginTop * 2; // 图标高度
double width = height * 2; // 图标宽度
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
backgroundColor: Colors.white,
title: Text("Title"),
actions: [
// 使用 IconSwitcher 插件
IconSwitcher(
width: width,
height: height,
marginTop: marginTop,
duration: duration,
icon1: Icons.satellite, // 第一个图标
icon2: Icons.content_copy, // 第二个图标
color1: Colors.purple, // 第一个图标的颜色
color2: Colors.white, // 第二个图标的颜色
backgroundColor: Colors.black, // 背景颜色
firstIconSelectedColor: Colors.redAccent, // 第一个选择器的颜色
secondIconSelectedColor: Colors.orangeAccent, // 第二个选择器的颜色
onChange: (bool result) { // 状态变化回调
setState(() {
left = result; // 更新状态
});
},
)
],
),
body: AnimatedCrossFade( // 动画切换容器
firstChild: Container(
color: Colors.black54, // 左侧视图颜色
),
secondChild: Container(
color: Colors.orange, // 右侧视图颜色
),
duration: duration, // 动画持续时间
crossFadeState: left ? CrossFadeState.showFirst : CrossFadeState.showSecond, // 当前视图状态
firstCurve: Curves.bounceOut, // 第一个视图的动画曲线
secondCurve: Curves.bounceOut, // 第二个视图的动画曲线
),
),
);
}
}
更多关于Flutter图标切换插件iconswitcher的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter图标切换插件iconswitcher的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
IconSwitcher
是一个用于在 Flutter 应用中切换图标的插件。它允许你在不同的图标之间进行切换,通常用于表示状态的改变,比如喜欢/不喜欢、开/关等。
安装
首先,你需要在 pubspec.yaml
文件中添加 iconswitcher
插件的依赖:
dependencies:
flutter:
sdk: flutter
iconswitcher: ^1.0.0 # 请检查最新版本
然后运行 flutter pub get
来安装依赖。
基本用法
IconSwitcher
的基本用法非常简单。你可以通过传递不同的图标和状态来控制图标的切换。
import 'package:flutter/material.dart';
import 'package:iconswitcher/iconswitcher.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
bool _isLiked = false;
void _toggleLike() {
setState(() {
_isLiked = !_isLiked;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('IconSwitcher Example'),
),
body: Center(
child: IconSwitcher(
isActive: _isLiked,
activeIcon: Icons.favorite,
inactiveIcon: Icons.favorite_border,
onPressed: _toggleLike,
),
),
);
}
}
参数说明
isActive
: 一个布尔值,表示当前图标的状态。如果为true
,则显示activeIcon
,否则显示inactiveIcon
。activeIcon
: 当isActive
为true
时显示的图标。inactiveIcon
: 当isActive
为false
时显示的图标。onPressed
: 当用户点击图标时触发的回调函数。
自定义样式
你还可以通过传递其他参数来自定义 IconSwitcher
的样式,比如图标的大小、颜色等。
IconSwitcher(
isActive: _isLiked,
activeIcon: Icons.favorite,
inactiveIcon: Icons.favorite_border,
onPressed: _toggleLike,
iconSize: 40.0,
activeColor: Colors.red,
inactiveColor: Colors.grey,
)