我已经在 dart/flutter 中按字母顺序对我的列表进行排序,使用
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/