Flutter滚动选择器插件scroll_picker的使用
Flutter滚动选择器插件scroll_picker的使用
scroll_picker
是一个帮助从字符串数组或列表中选择选项的插件。它在你的视图顶部显示一个轮盘滚动视图,类似于模态窗口。当前选择项会以光标的形式显示。通过点击“确认”按钮或直接点击所需项目来选择新选项。所选项目通过回调函数返回。
特性
- 易于实现:从字符串列表中选择一个项目。
- 支持多行项目:默认为5行,也可以选择7行或9行。
- 包含一个函数:从十六进制字符串(如
#F0605Ff0
)返回Color.fromRGBO
颜色值。 - YouTube链接:视频演示
开始使用
在pubspec.yaml
文件中添加:
flutter pub add scroll_picker
导入包:
import 'package:scroll_picker/scroll_picker.dart';
使用步骤
-
声明本地变量:
List<String> options = ['Apple', 'Kiwi', 'Tomato', 'Pear']; String? currentOption;
-
创建回调函数:
void callbackString(val) { setState(() { currentOption = val; }); }
-
初始化当前选项:
[@override](/user/override) void initState() { setState(() { currentOption = currentOption ?? options[0]; }); super.initState(); }
-
使用ScrollPicker组件:
Column( children: [ ScrollPicker( dataArray: options, currentSelection: currentOption!, fontSizeList: 20, fontSizeTitle: 18, callback: callbackString, ), ], )
完整示例
以下是一个完整的示例代码,展示了如何在Flutter应用中使用scroll_picker
插件:
import 'package:flutter/material.dart';
import 'package:scroll_picker/scroll_picker.dart';
void main() => runApp(const ScrollPickerExample());
class ScrollPickerExample extends StatelessWidget {
const ScrollPickerExample({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: ScrollPickerMain(),
);
}
}
class ScrollPickerMain extends StatefulWidget {
const ScrollPickerMain({super.key});
[@override](/user/override)
State<ScrollPickerMain> createState() => _ScrollPickerMainState();
}
class _ScrollPickerMainState extends State<ScrollPickerMain> {
// 水果选择器示例
List<String> options = ['Apple', 'Kiwi', 'Blueberry', 'Mango', 'Orange', 'Pear'];
String? currOption;
void callbackOption(value) {
setState(() {
currOption = value;
});
}
// 饮料选择器示例
List<String> drinks = ['pick drink', 'Coke', 'Diet Coke', 'Pepsi', 'Dr Pepper', 'Sprite', 'Pear'];
String? currentDrink;
void callbackDrink(value) {
setState(() {
currentDrink = value;
});
}
[@override](/user/override)
void initState() {
setState(() {
currOption = currOption ?? options[0];
currentDrink = currentDrink ?? drinks[0];
});
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Scroll Picker, String list')),
body: Container(
width: double.infinity,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const SizedBox(height: 50),
// 水果选择器
Container(
padding: const EdgeInsets.all(5),
child: ScrollPicker(
dataArray: options,
currentSelection: currOption!,
fontSizeList: 20,
fontSizeTitle: 18,
callback: callbackOption,
),
),
const SizedBox(height: 50),
// 饮料选择器
Container(
decoration: BoxDecoration(
color: stringToRGBO('#106070f0'),
borderRadius: BorderRadius.circular(5),
),
padding: const EdgeInsets.all(5),
child: ScrollPicker(
dataArray: drinks,
currentSelection: currentDrink!,
fontSizeList: 20,
fontSizeTitle: 18,
callback: callbackDrink,
colorTextDisplay: '#FFFFFFff',
scrollLines: 7,
),
),
],
),
),
);
}
}
更多关于Flutter滚动选择器插件scroll_picker的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter滚动选择器插件scroll_picker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
scroll_picker
是一个用于 Flutter 的滚动选择器插件,它允许你创建一个可以滚动的选择器,用户可以通过滚动来选择一个值。这个插件通常用于需要用户从一系列选项中选择一个的场景,比如选择日期、时间、或其他自定义选项。
安装
首先,你需要在 pubspec.yaml
文件中添加 scroll_picker
依赖:
dependencies:
flutter:
sdk: flutter
scroll_picker: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
基本用法
以下是一个简单的示例,展示如何使用 scroll_picker
来创建一个滚动选择器:
import 'package:flutter/material.dart';
import 'package:scroll_picker/scroll_picker.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Scroll Picker Example'),
),
body: Center(
child: ScrollPicker(
items: List.generate(100, (index) => index.toString()),
selectedIndex: 50,
onChanged: (value) {
print('Selected value: $value');
},
),
),
),
);
}
}
参数说明
items
: 一个包含所有选项的列表。通常是一个字符串列表,但也可以是其他类型的列表。selectedIndex
: 初始选中的索引。onChanged
: 当用户滚动选择器并选择了一个新值时触发的回调函数。回调函数会传递当前选中的值。
自定义样式
你可以通过 ScrollPicker
的构造函数中的其他参数来自定义选择器的样式,例如:
itemExtent
: 每个选项的高度。controller
: 用于控制滚动位置的ScrollController
。decoration
: 选择器的装饰,例如背景颜色、边框等。
示例代码
ScrollPicker(
items: List.generate(100, (index) => 'Item $index'),
selectedIndex: 50,
itemExtent: 50.0,
onChanged: (value) {
print('Selected value: $value');
},
decoration: BoxDecoration(
color: Colors.grey[200],
borderRadius: BorderRadius.circular(10),
),
)