Flutter下拉搜索选择插件flutter_dropdown_search的使用

发布于 1周前 作者 yibo5220 来自 Flutter

Flutter下拉搜索选择插件flutter_dropdown_search的使用

flutter_dropdown_search 是一个强大的 Flutter 插件,它允许用户从下拉列表中搜索并选择项目。此外,该插件还支持获取不在下拉列表中的输入。

Getting Started

Platforms

此小部件已在 iOS、Android 和 Chrome 上成功测试。

Screenshots

Outlook Searching with country name

Code

以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 flutter_dropdown_search 插件。

示例代码

import 'package:flutter/material.dart';
import 'package:flutter_dropdown_search/flutter_dropdown_search.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Dropdown Search',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  final TextEditingController _controller = TextEditingController();
  final List<String> items = [
    "Afghanistan", "Albania", "Algeria", "American Samoa",
    "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda",
    "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan"
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Dropdown Search'),
      ),
      body: Padding(
        padding: EdgeInsets.symmetric(horizontal: 15, vertical: 20),
        child: Column(
          children: [
            FlutterDropdownSearch(
              textController: _controller,
              items: items,
              dropdownHeight: 300,
            ),
          ],
        ),
      ),
    );
  }
}

说明

  1. 导入依赖

    import 'package:flutter/material.dart';
    import 'package:flutter_dropdown_search/flutter_dropdown_search.dart';
    
  2. 创建 MyApp

    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Dropdown Search',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: HomePage(),
        );
      }
    }
    
  3. 创建 HomePage

    class HomePage extends StatelessWidget {
      final TextEditingController _controller = TextEditingController();
      final List<String> items = [
        "Afghanistan", "Albania", "Algeria", "American Samoa",
        "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda",
        "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan"
      ];
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Flutter Dropdown Search'),
          ),
          body: Padding(
            padding: EdgeInsets.symmetric(horizontal: 15, vertical: 20),
            child: Column(
              children: [
                FlutterDropdownSearch(
                  textController: _controller,
                  items: items,
                  dropdownHeight: 300,
                ),
              ],
            ),
          ),
        );
      }
    }
    

使用方法

  1. 安装依赖: 在 pubspec.yaml 文件中添加 flutter_dropdown_search 依赖:

    dependencies:
      flutter:
        sdk: flutter
      flutter_dropdown_search: ^最新版本号
    

    然后运行 flutter pub get 命令来安装依赖。

  2. 初始化控制器和数据

    final TextEditingController _controller = TextEditingController();
    final List<String> items = ["Afghanistan", "Albania", "Algeria", ...];
    
  3. 创建 FlutterDropdownSearch 小部件

    FlutterDropdownSearch(
      textController: _controller,
      items: items,
      dropdownHeight: 300,
    )
    

通过以上步骤,你就可以在 Flutter 应用中使用 flutter_dropdown_search 插件了。希望这个示例对你有所帮助!


更多关于Flutter下拉搜索选择插件flutter_dropdown_search的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter下拉搜索选择插件flutter_dropdown_search的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何使用 flutter_dropdown_search 插件来实现下拉搜索选择的示例代码。这个插件允许你在Flutter应用中实现一个具有搜索功能的下拉菜单。

首先,确保你已经在 pubspec.yaml 文件中添加了 flutter_dropdown_search 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_dropdown_search: ^x.x.x  # 请替换为最新版本号

然后,运行 flutter pub get 来获取依赖。

接下来,下面是一个完整的示例代码,展示如何在Flutter应用中使用 flutter_dropdown_search

import 'package:flutter/material.dart';
import 'package:flutter_dropdown_search/flutter_dropdown_search.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Dropdown Search Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  // 示例数据
  List<String> items = List<String>.generate(100, (i) => "Item $i");
  String? selectedItem;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Dropdown Search Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            DropdownSearch<String>(
              mode: Mode.DIALOG, // 你可以使用 Mode.BOTTOM_SHEET 或 Mode.MENU
              showSearchBox: true,
              label: "Select an item",
              hint: "Search...",
              items: items,
              onChanged: (value) {
                setState(() {
                  selectedItem = value;
                });
              },
              selectedItem: selectedItem,
              popupTitle: Text("Search Items"),
            ),
            SizedBox(height: 20),
            Text("Selected Item: $selectedItem"),
          ],
        ),
      ),
    );
  }
}

在这个示例中:

  1. 我们创建了一个包含100个项的列表 items
  2. 使用 DropdownSearch<String> 小部件来创建一个具有搜索功能的下拉菜单。
  3. 设置了 modeMode.DIALOG,这意味着搜索对话框将以对话框的形式显示。你也可以使用 Mode.BOTTOM_SHEETMode.MENU
  4. showSearchBox 设置为 true 以显示搜索框。
  5. labelhint 属性分别用于设置标签和搜索框的占位符文本。
  6. items 属性接受我们的数据源列表。
  7. onChanged 回调函数在选项更改时被调用,并更新 selectedItem
  8. selectedItem 属性保存当前选中的项。
  9. popupTitle 用于设置弹出菜单的标题。

运行这个代码,你将看到一个带有搜索功能的下拉菜单,当你选择一个项时,下面的文本将显示你选择的项。

希望这个示例对你有所帮助!如果你有任何其他问题,请随时询问。

回到顶部