Flutter选择器插件wheel_chooser的使用
Flutter选择器插件wheel_chooser的使用
WheelChooser
是一个允许用户通过滚动轮盘来选择数字、字符串或自定义小部件的Flutter插件。
安装
在 pubspec.yaml
文件中添加依赖:
dependencies:
wheel_chooser: ^1.1.2
创建 WheelChooser 小部件
显示字符串
import 'package:flutter/material.dart';
import 'package:wheel_chooser/wheel_chooser.dart';
class StringChooserExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('String Chooser')),
body: Center(
child: WheelChooser(
onValueChanged: (s) => print(s),
datas: ["a", "b", "c"],
),
),
);
}
}
显示整数
import 'package:flutter/material.dart';
import 'package:wheel_chooser/wheel_chooser.dart';
class IntegerChooserExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Integer Chooser')),
body: Center(
child: WheelChooser.integer(
onValueChanged: (i) => print(i),
maxValue: 10,
minValue: 1,
step: 2,
),
),
);
}
}
显示带有标题和返回值的选项
import 'package:flutter/material.dart';
import 'package:wheel_chooser/wheel_chooser.dart';
class ChoiceChooserExample extends StatelessWidget {
final List<WheelChoice> aChoices = [
WheelChoice(value: DateTime(2000, 1, 1, 9, 0), title: '9AM'),
WheelChoice(value: DateTime(2000, 1, 1, 9, 30), title: '9:30AM'),
WheelChoice(value: DateTime(2000, 1, 1, 10, 0), title: '10AM'),
WheelChoice(value: DateTime(2000, 1, 1, 10, 30), title: '10:30AM'),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Choice Chooser')),
body: Center(
child: WheelChooser.choices(
choices: aChoices,
onChoiceChanged: (value) {
print('selected time is ${value.hour} hours and ${value.minute} minutes');
},
),
),
);
}
}
显示自定义小部件
import 'package:flutter/material.dart';
import 'package:wheel_chooser/wheel_chooser.dart';
class CustomChooserExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Custom Chooser')),
body: Center(
child: WheelChooser.custom(
onValueChanged: (a) => print(a),
children: <Widget>[
Text("data1"),
Text("data2"),
Text("data3"),
],
),
),
);
}
}
使用示例
垂直显示整数
import 'package:flutter/material.dart';
import 'package:wheel_chooser/wheel_chooser.dart';
class VerticalIntegerExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Vertical Integer Chooser')),
body: Center(
child: WheelChooser.integer(
onValueChanged: (s) => print(s.toString()),
maxValue: 18,
minValue: 1,
initValue: 5,
unSelectTextStyle: TextStyle(color: Colors.grey),
),
),
);
}
}
水平显示整数
import 'package:flutter/material.dart';
import 'package:wheel_chooser/wheel_chooser.dart';
class HorizontalIntegerExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Horizontal Integer Chooser')),
body: Center(
child: WheelChooser.integer(
onValueChanged: (s) => print(s.toString()),
maxValue: 20,
minValue: 1,
initValue: 9,
horizontal: true,
unSelectTextStyle: TextStyle(color: Colors.grey),
),
),
);
}
}
从 v0.1.1 开始支持无限滚动,从 v1.0.0 开始支持空安全。
以上代码提供了完整的示例demo,涵盖了 `WheelChooser` 的基本用法,包括显示字符串、整数、自定义选项和自定义小部件等。你可以根据需要选择适合的实现方式。
更多关于Flutter选择器插件wheel_chooser的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter选择器插件wheel_chooser的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用wheel_chooser
插件的示例代码。wheel_chooser
是一个用于创建选择器轮盘的插件,通常用于日期选择、时间选择或其他需要轮盘选择的项目。
1. 添加依赖
首先,在你的pubspec.yaml
文件中添加wheel_chooser
的依赖:
dependencies:
flutter:
sdk: flutter
wheel_chooser: ^latest_version # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
2. 导入插件
在你的Dart文件中导入wheel_chooser
:
import 'package:wheel_chooser/wheel_chooser.dart';
3. 使用WheelChooser
下面是一个完整的示例,展示如何使用WheelChooser
创建一个简单的选择器:
import 'package:flutter/material.dart';
import 'package:wheel_chooser/wheel_chooser.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Wheel Chooser Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: WheelChooserDemo(),
);
}
}
class WheelChooserDemo extends StatefulWidget {
@override
_WheelChooserDemoState createState() => _WheelChooserDemoState();
}
class _WheelChooserDemoState extends State<WheelChooserDemo> {
final List<String> items = List.generate(20, (index) => "Item ${index + 1}");
String? selectedItem;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Wheel Chooser Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
WheelChooser(
itemCount: items.length,
itemBuilder: (context, index) {
return Center(
child: Text(
items[index],
style: TextStyle(fontSize: 20),
),
);
},
onSelected: (index) {
setState(() {
selectedItem = items[index];
});
},
// 可选参数,用于设置初始选中项
selectedItemIndex: items.indexOf(selectedItem ?? items.first),
),
SizedBox(height: 20),
Text(
'Selected: ${selectedItem ?? 'None'}',
style: TextStyle(fontSize: 24),
),
],
),
),
);
}
}
解释
- 添加依赖:确保在
pubspec.yaml
文件中添加了wheel_chooser
依赖。 - 导入插件:在Dart文件中导入
wheel_chooser
。 - 创建数据:在
WheelChooserDemo
类中创建了一个包含20个字符串的列表items
。 - 构建UI:
- 使用
WheelChooser
组件来创建选择器。 itemCount
属性表示选择器中项目的数量。itemBuilder
属性用于构建每个项目,返回一个包含文本的小部件。onSelected
回调函数在选中某个项目时被调用,并更新选中项。selectedItemIndex
可选参数用于设置初始选中项。
- 使用
- 显示选中项:在
WheelChooser
下方显示当前选中的项目。
通过以上步骤,你就可以在Flutter项目中成功使用wheel_chooser
插件来创建一个选择器轮盘。