Flutter三态切换插件tri_switcher的使用
Flutter三态切换插件tri_switcher的使用
TriSwitcher介绍
TriSwitcher 是一个为 Flutter 提供的切换器组件,它允许用户在三个状态之间进行切换。这对于需要轻松切换三个状态的场景非常合适。
安装
要使用 TriSwitcher,请将以下依赖项添加到您的 pubspec.yaml
文件中:
dependencies:
tri_switcher: ^0.0.5
然后在 Dart 代码中导入该包:
import 'package:tri_switcher/tri_switcher.dart';
预览
下图展示了 TriSwitcher 的的预览效果:
属性
以下是 TriSwitcher 的一些属性:
final ValueChanged onChanged
: 回调函数,用于处理状态变化。final SwitchPosition? initialPosition
: 初始位置。final Color firstStateBackgroundColor
: 第一状态背景颜色。final Color secondStateBackgroundColor
: 第二状态背景颜色。final Color thirdStateBackgroundColor
: 第三状态背景颜色。final Color firstStateToggleColor
: 第一状态切换颜色。final Color secondStateToggleColor
: 第二状态切换颜色。final Color thirdStateToggleColor
: 第三状态切换颜色。final List<widget>
icons: 图标列表。final BoxShape toggleShape
: 切换形状。final BorderRadiusGeometry borderRadius
: 圆角半径。final Duration duration
: 动画持续时间。final Curve curve
: 动画曲线。final double? size
: 大小。
使用方法
只需将 TriSwitcher 组件添加到您的 Flutter 应用,并定义回调函数来处理状态变化即可。
TriSwitcher(
onChanged: (SwitchPosition position) {
// Handle state changes here
},
),
示例代码
下面是一个完整的示例代码,展示如何使用 TriSwitcher:
import 'package:flutter/material.dart';
import 'package:tri_switcher/tri_switcher.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'TriSwitcher Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
),
home: const SwitcherExample(),
);
}
}
class SwitcherExample extends StatelessWidget {
const SwitcherExample({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text(
'TriSwitcher Example',
style: TextStyle(color: Colors.deepPurple.shade900),
)),
body: Center(
child: Container(
padding: const EdgeInsets.all(16),
margin: const EdgeInsets.all(16),
decoration: BoxDecoration(
color: Colors.deepPurple.shade100,
borderRadius: BorderRadius.circular(20),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('ThemeMode',
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.deepPurple.shade900)),
TriSwitcher(
initialPosition: SwitchPosition.left,
firstStateBackgroundColor: Colors.deepPurple,
secondStateBackgroundColor: Colors.deepPurple.shade200,
thirdStateBackgroundColor: Colors.deepPurple.shade400,
thirdStateToggleColor: Colors.deepPurple.shade900,
borderRadius: BorderRadius.circular(20),
icons: const [
Icon(Icons.sunny, color: Colors.amber),
Icon(Icons.nightlight_round, color: Colors.purple),
Icon(Icons.settings_outlined, color: Colors.white),
],
onChanged: (SwitchPosition position) {
print('Switch position: $position');
},
),
],
),
),
));
}
}
更多关于Flutter三态切换插件tri_switcher的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复