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;
}