Flutter 如何按类别筛选显示小部件

Flutter 如何按类别筛选显示小部件,flutter,Flutter,我有一个类别模型中的类别列表: class Categories { final int id; final String categoryName; final String categoryImage; final String categorySubTitle; final String categoryDescription; Categories({ this.id, this.categoryName, this.categoryIm

我有一个类别模型中的类别列表:

class Categories {
  final int id;
  final String categoryName;
  final String categoryImage;
  final String categorySubTitle;
  final String categoryDescription;

  Categories({
    this.id,
    this.categoryName,
    this.categoryImage,
    this.categorySubTitle,
    this.categoryDescription
  });
}

List<Categories> categories = [tarocchi, amore, cartomanzia, viaggi, salute,carriera];

每个类别项目都有一个手势检测器,该检测器应移动到另一个屏幕,在该屏幕上应显示用户订阅的特定类别


因此,我如何在2屏幕中定义只有具有选定类别的用户才会显示?

有很多方法可以解决这个问题

一种简单的方法是使用过滤器参数创建第二个屏幕:
ConsultantListScreen(categoryID)
,然后在其构建方法中使用它:

Widget build(BuildContext context){
...
var usersSubscribed = allUsers.where((u) => u.isSubscribedToCategory(categoryID));  // this information will probably come from a Provider, or maybe from a global index or something :-)
...
}

就我个人而言,如果根本不需要切换到第二页,我认为这会更优雅。例如,您可以从类别中创建筛选按钮或标记,并简单地按它们筛选用户。当然,这是您的设计决定。

好的,在列表上方创建一个过滤器按钮幻灯片也是一个不错的方法,但是如何创建这个过滤器呢?例如,我可以创建一个包含所有类别的水平列表,当用户单击该类别时,小部件只会随着选择了类别的用户而更改,但如何更改?同样,有很多方法可以实现这一点,这是您的设计决策。:-)我喜欢,或者使用flutter也很容易创建过滤列表(如果您喜欢,甚至还有一个过滤器)。在谷歌上搜索,有很多关于如何做的教程和视频。
Widget build(BuildContext context){
...
var usersSubscribed = allUsers.where((u) => u.isSubscribedToCategory(categoryID));  // this information will probably come from a Provider, or maybe from a global index or something :-)
...
}