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); // 打印选中的选项
    },
  );
}

代码解释:

  1. optionsList 是一个包含多个选项的列表,每个选项是一个映射(Map),其中键值对包括选项的名称和唯一标识符。
  2. filterField 指定了用于过滤和显示的字段,这里设置为 "name",即选项的名称。
  3. 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',
  ),
),
回到顶部