我已经按字母顺序以dart / flutter排序 list ,

a.value['name'].toString().toLowerCase().compareTo(b.value['name'].toString().toLowerCase());

但是,我也想将列表中的一项排序到最前面,而忽略按字母顺序排序。有谁知道这是怎么做到的吗?

编辑:
这是我的Firebase动画列表
FirebaseAnimatedList(
      query: query,
      sort: (a, b) {
        return a.value['name'].toString().toLowerCase().compareTo(b.value['name'].toString().toLowerCase());
      },
      padding: EdgeInsets.all(8.0),
      defaultChild: Center(
        child: CircularProgressIndicator(
          valueColor: AlwaysStoppedAnimation<Color>(appTheme.accentColor),
          strokeWidth: 2.0,
        ),
      ),
      itemBuilder: (BuildContext context, DataSnapshot snapshot,
        Animation<double> animation, int index) {
          return Item(index);
      },
    )

例如,我正在对列表中的人名列表进行排序。但是,我希望始终将某个名称“Roger”排在首位。这怎么可能?

最佳答案

您只想在您的排序函数中为“Roger”返回-1和-1:

FirebaseAnimatedList(
  query: query,
  sort: (a, b) {
    if (a == "Roger") return -1;
    if (b == "Roger") return 1;
    return a.value['name'].toString().toLowerCase().compareTo(b.value['name'].toString().toLowerCase());
  },
  padding: EdgeInsets.all(8.0),
  defaultChild: Center(
    child: CircularProgressIndicator(
      valueColor: AlwaysStoppedAnimation<Color>(appTheme.accentColor),
      strokeWidth: 2.0,
    ),
  ),
  itemBuilder: (BuildContext context, DataSnapshot snapshot,
    Animation<double> animation, int index) {
      return Item(index);
  },
)

关于dart - 将项目排序到Dart中列表的前面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51848065/

10-11 09:11
查看更多