select_dialog 包

专为从列表中选择项目设计的包,可以选择过滤甚至在线搜索项目。

pubspec.yaml

select_dialog: <last version>

导入

import 'package:select_dialog/select_dialog.dart';

简单示例

String ex1 = "No value selected";

SelectDialog.showModal<String>(
  context,
  label: "Simple Example",
  selectedValue: ex1,
  items: List.generate(50, (index) => "Item $index"),
  onChange: (String selected) {
    setState(() {
      ex1 = selected;
    });
  },
);

注意

要将模板用作项目类型,您需要实现**toString**、**equals** 和 **hashcode**,如下所示

class UserModel {
  final String id;
  final DateTime createdAt;
  final String name;
  final String avatar;

  UserModel({this.id, this.createdAt, this.name, this.avatar});

  @override
  String toString() => name;

  @override
  operator ==(o) => o is UserModel && o.id == id;

  @override
  int get hashCode => id.hashCode^name.hashCode^createdAt.hashCode;

}

GitHub

https://github.com/davidsdearaujo/select_dialog