我已经按字母顺序以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/