Flutter多选选择器插件cf_multi_picker的使用
cf_multi_picker #
一个用于创建多选选择器的插件。
使用方法 #
要使用此插件,请在项目的 pubspec.yaml
文件中添加 cf_multi_picker
作为依赖项。
示例 #
// 显示一个多选选择器
CfPicker.showMultiPicker(
context: context, // 当前上下文
data: PickerData, // 数据源
onConfirm: (data, _select) { // 确认回调
print(data); // 打印选择结果
}
);
安装 #
flutter pub add cf_multi_picker
使用包 #
import 'package:cf_multi_picker/cf_multi_picker.dart';
预览 #
以下是一个完整的示例代码,展示如何使用 cf_multi_picker
插件。
完整示例代码
// 导入必要的库
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:cf_multi_picker/cf_multi_picker.dart'; // 引入 cf_multi_picker 插件
void main() {
// 初始化 Flutter 环境
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp()); // 启动应用
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState(); // 创建状态类
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown'; // 平台版本信息
List<dynamic> result = []; // 选择结果
List<int> select = []; // 选择的索引
[@override](/user/override)
void initState() {
super.initState();
initPlatformState(); // 初始化平台状态
}
// 初始化平台状态(异步操作)
Future<void> initPlatformState() async {}
// 按钮点击事件,触发多选选择器
void onPress(BuildContext context) {
CfPicker.showMultiPicker(
context: context, // 当前上下文
data: PickerData, // 数据源
onConfirm: (data, _select) { // 回调函数
setState(() { // 更新 UI
result = data;
select = _select;
});
},
);
}
[@override](/user/override)
Widget build(BuildContext context) {
return MediaQuery(
data: const MediaQueryData(
size: Size(1000, 500), // 设置屏幕大小
),
child: MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('cf_multi_picker 示例'), // 应用标题
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center, // 子组件垂直居中
children: [
// 显示选择结果
Text("结果: $result"),
// 显示选择的索引
Text("选择的索引: $select"),
// 添加按钮,触发多选选择器
Builder(
builder: (context) {
return ElevatedButton(
onPressed: () {
onPress(context); // 调用触发函数
},
child: const Icon(Icons.add), // 图标
);
},
),
// 显示平台版本信息
FutureBuilder<String?>(
future: CallNativeFlutter.platformVersion, // 获取平台版本
builder: (_, snapshoot) {
return Text(snapshoot.data ?? ''); // 显示结果
},
),
],
),
),
),
),
);
}
}
// 定义数据源
List<dynamic> PickerData = [
{
'select': 1, // 默认选择数量
'data': [1, 2, 3, 4] // 可选项
},
{
'select': 1,
'data': [11, 22, 33, 44]
},
{
'select': 1,
'data': ["aaa", "bbb", "ccc"]
}
];
更多关于Flutter多选选择器插件cf_multi_picker的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter多选选择器插件cf_multi_picker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
cf_multi_picker
是一个用于 Flutter 的多选选择器插件,它允许用户从多个选项中选择一个或多个项目。这个插件非常适合需要用户进行多选的场景,比如选择多个标签、多个分类等。
安装
首先,你需要在 pubspec.yaml
文件中添加 cf_multi_picker
依赖:
dependencies:
flutter:
sdk: flutter
cf_multi_picker: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
基本用法
以下是一个简单的示例,展示如何使用 cf_multi_picker
插件:
import 'package:flutter/material.dart';
import 'package:cf_multi_picker/cf_multi_picker.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MultiPickerExample(),
);
}
}
class MultiPickerExample extends StatefulWidget {
@override
_MultiPickerExampleState createState() => _MultiPickerExampleState();
}
class _MultiPickerExampleState extends State<MultiPickerExample> {
List<String> selectedItems = [];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Multi Picker Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () async {
final List<String>? result = await showCFMultiPicker(
context: context,
items: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5'],
selectedItems: selectedItems,
);
if (result != null) {
setState(() {
selectedItems = result;
});
}
},
child: Text('Show Multi Picker'),
),
SizedBox(height: 20),
Text('Selected Items: ${selectedItems.join(", ")}'),
],
),
),
);
}
}
参数说明
context
: 当前的 BuildContext。items
: 一个包含所有可选项目的列表。selectedItems
: 一个包含当前已选项目的列表。title
: 选择器的标题(可选)。confirmText
: 确认按钮的文本(可选)。cancelText
: 取消按钮的文本(可选)。
返回值
showCFMultiPicker
方法返回一个 Future<List<String>?>
,当用户点击确认按钮时,返回用户选择的项目列表;如果用户取消选择,则返回 null
。
自定义样式
你可以通过传递 CFMultiPickerTheme
来自定义选择器的样式:
final List<String>? result = await showCFMultiPicker(
context: context,
items: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5'],
selectedItems: selectedItems,
theme: CFMultiPickerTheme(
backgroundColor: Colors.white,
itemTextStyle: TextStyle(color: Colors.black),
selectedItemTextStyle: TextStyle(color: Colors.blue),
confirmTextStyle: TextStyle(color: Colors.green),
cancelTextStyle: TextStyle(color: Colors.red),
),
);