[flutter] 플러터 GridView에서 아이템의 순서를 랜덤하게 섞는 방법은?
플러터에서 GridView를 사용할 때, 아이템의 순서를 랜덤하게 섞고 싶을 때가 있을 겁니다. 이를 위해 두 가지 방법을 사용할 수 있습니다.
1. List를 랜덤하게 섞어서 GridView에 매핑
가장 간단한 방법은 아이템이 담긴 List를 랜덤하게 섞은 뒤, GridView에 매핑하는 것입니다.
import 'dart:math';
void main() {
List<String> items = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"];
items.shuffle(); // 리스트를 랜덤하게 섞음
runApp(
MaterialApp(
home: Scaffold(
body: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
),
itemCount: items.length,
itemBuilder: (BuildContext context, int index) {
return Center(
child: Text(items[index]),
);
},
),
),
),
);
}
2. GridView의 순서를 랜덤하게 섞는 커스텀 위젯을 만들기
두 번째 방법은 GridView의 순서를 랜덤하게 섞는 커스텀 위젯을 만드는 것입니다.
import 'dart:math';
import 'package:flutter/material.dart';
class RandomizedGridView extends StatelessWidget {
final List<String> items;
RandomizedGridView({required this.items});
@override
Widget build(BuildContext context) {
items.shuffle(); // 리스트를 랜덤하게 섞음
return GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
),
itemCount: items.length,
itemBuilder: (BuildContext context, int index) {
return Center(
child: Text(items[index]),
);
},
);
}
}
void main() {
List<String> items = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"];
runApp(
MaterialApp(
home: Scaffold(
body: RandomizedGridView(items: items),
),
),
);
}
어떤 방법을 선택하든, GridView에서 아이템의 순서를 랜덤하게 섞어 보세요!