Flutter下拉选择输入插件dropdown_input的使用
Flutter下拉选择输入插件dropdown_input的使用
安装
在pubspec.yaml文件中添加dropdown_input作为依赖项(什么是依赖项?)。
dropdown_input: ^0.0.1
导入Dropdown Input:
import 'package:dropdown_input/dropdown_input.dart';
基本用法
给定一个List<Map<String, dynamic>>类型的optionsList和一个String类型的filterField作为参数:
List<Map<String, dynamic>> optionsList = [
{
"name": "灰色",
"id": "1"
},
{
"name": "绿色",
"id": "2"
},
{
"name": "红色",
"id": "3"
},
{
"name": "橙色",
"id": "4"
}
];
在build方法中使用DropdownInput:
[@override](/user/override)
Widget build(BuildContext context) {
return DropdownInput(
optionsList: optionsList,
filterField: "name",
onItemSelected: (item) {
print(item); // 打印选中的选项
},
);
}
代码解释:
optionsList是一个包含多个选项的列表,每个选项是一个映射(Map),其中键值对包括选项的名称和唯一标识符。filterField指定了用于过滤和显示的字段,这里设置为"name",即选项的名称。onItemSelected是一个回调函数,当用户选择一个选项时会触发,并将选中的选项作为参数传递。
结果
以下是运行效果的截图:
![]() |
![]() |
|---|---|
![]() |
![]() |
完整示例代码
以下是一个完整的示例代码,展示如何使用dropdown_input插件:
// 导入必要的包
import 'package:dropdown_input/dropdown_input.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Dropdown Input 示例',
theme: ThemeData(primarySwatch: Colors.blue),
home: const MyHomePage(title: 'Dropdown Input 示例'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
// 定义选项列表
List<Map<String, dynamic>> optionsList = [
{
"name": "灰色",
"id": "1"
},
{
"name": "绿色",
"id": "2"
},
{
"name": "红色",
"id": "3"
},
{
"name": "橙色",
"id": "4"
}
];
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// 使用 DropdownInput 插件
DropdownInput(
optionsList: optionsList,
filterField: "name", // 指定显示的字段
onItemSelected: (item) {
print("选中的选项: $item"); // 打印选中的选项
},
),
],
),
),
);
}
}
更多关于Flutter下拉选择输入插件dropdown_input的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter下拉选择输入插件dropdown_input的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
dropdown_input 是一个用于 Flutter 的下拉选择输入插件,允许用户从预定义的选项中选择一个值。它通常用于表单或需要用户从一组选项中进行选择的场景。
安装插件
首先,你需要在 pubspec.yaml 文件中添加 dropdown_input 插件的依赖:
dependencies:
flutter:
sdk: flutter
dropdown_input: ^1.0.0 # 请检查最新版本
然后运行 flutter pub get 来安装依赖。
使用 dropdown_input
以下是一个简单的示例,展示如何使用 dropdown_input 插件:
import 'package:flutter/material.dart';
import 'package:dropdown_input/dropdown_input.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Dropdown Input Example'),
),
body: Center(
child: DropdownInputExample(),
),
),
);
}
}
class DropdownInputExample extends StatefulWidget {
@override
_DropdownInputExampleState createState() => _DropdownInputExampleState();
}
class _DropdownInputExampleState extends State<DropdownInputExample> {
String? _selectedValue;
final List<String> _options = [
'Option 1',
'Option 2',
'Option 3',
'Option 4',
];
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(16.0),
child: DropdownInput<String>(
options: _options,
value: _selectedValue,
onChanged: (String? newValue) {
setState(() {
_selectedValue = newValue;
});
},
hint: 'Select an option',
),
);
}
}
参数说明
options: 一个包含所有可选选项的列表。value: 当前选中的值。onChanged: 当用户选择一个选项时触发的回调函数。hint: 当没有选中任何选项时显示的提示文本。
自定义样式
你可以通过传递 decoration 参数来自定义下拉输入的样式:
DropdownInput<String>(
options: _options,
value: _selectedValue,
onChanged: (String? newValue) {
setState(() {
_selectedValue = newValue;
});
},
hint: 'Select an option',
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'Choose an option',
),
),





