どうも、ちょげ(@chogetarou)です。
リストビューを並び替える方法を紹介します。
方法

ソート
リストビューをソートで並び替えるには、sortメソッドを使います。
以下は、例です。
var _list = <int>[9, 2, 4, 1, 3, 7, 5, 10, 6, 8];
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: Padding(
padding: const EdgeInsets.all(8.0),
child: ListView.builder(
itemCount: _list.length,
itemBuilder: (context, index) {
return Text('${_list[index]}');
},
itemExtent: 50,
),
),
floatingActionButton: FloatingActionButton(onPressed: () {
setState(() {
_list.sort((a, b) => a.compareTo(b));
});
}),
),
);
}
移動
リストビューを移動して、並び替えるには、ReorderableListViewを使います。
ReorderableListViewは、引数「children」に表示する要素、引数「reOrder」に並び替える処理を追加することで使えます。
ReorderableListView(
children: [
/*Item*/
],
onReorder: (int oldIndex, int newIndex) {
setState(() {
if (oldIndex < newIndex) {
newIndex -= 1;
}
final int item = _items.removeAt(oldIndex);
_items.insert(newIndex, item);
});
},
)
まとめ
リストビューを並び替えるには、ソートで並び替えるには「sortメソッド」、移動で並び替えるには「ReorderableListView」を使います。
コメント