我已经使用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”排在首位。这怎么可能?
答案 0 :(得分:1)
您只想在排序函数中为“ 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);
},
)