[flutter] 플러터에서 sticky 헤더를 가진 그리드뷰 만들기
때로는 그리드뷰에서 스크롤되면서 헤더를 유지해야 할 때가 있습니다. 이러한 경우에는 sticky 헤더를 구현해야 합니다. Flutter에서 sticky 헤더를 가진 그리드뷰를 만드는 방법에 대해 알아보겠습니다.
1. sticky_headers 패키지 설치
먼저, sticky_headers
패키지를 설치해야 합니다. 이 패키지는 Flutter에서 스크롤 가능한 목록에서 sticky 헤더를 만들 수 있게 해줍니다. 아래의 명령어를 사용하여 패키지를 설치합니다.
flutter pub add sticky_headers
2. sticky 헤더 그리드뷰 구현
2.1. 패키지 가져오기
sticky_headers
패키지를 가져옵니다.
import 'package:sticky_headers/sticky_headers.dart';
2.2. 그리드뷰 구성
그리드뷰를 생성하고 해당 위젯을 StickyHeaderGridView
로 감싸야 합니다. StickyHeader
위젯을 사용하여 sticky 헤더를 만들 수 있습니다.
StickyHeaderGridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
crossAxisSpacing: 5.0,
mainAxisSpacing: 5.0,
),
itemCount: 20,
itemBuilder: (BuildContext context, int index) {
// 그리드 아이템 위젯 구성
return GridTile(
child: Container(
color: Colors.grey,
child: Center(
child: Text('Item $index'),
),
),
);
},
gridHeaderBuilder: (BuildContext context, int index) {
// sticky 헤더 위젯 구성
return Container(
height: 50,
color: Colors.blue,
padding: EdgeInsets.all(10.0),
alignment: Alignment.centerLeft,
child: Text('Header $index', style: TextStyle(color: Colors.white)),
);
},
),
위의 코드에서 gridDelegate
는 그리드뷰의 배치 방식을 정의합니다. itemBuilder
는 그리드 아이템을 생성하고, gridHeaderBuilder
는 sticky 헤더를 생성합니다.
마무리
위의 코드를 실행하면 sticky 헤더가 있는 그리드뷰를 만들 수 있습니다. sticky_headers
패키지의 다양한 설정을 사용하여 헤더와 그리드 아이템의 스타일을 조정할 수도 있습니다.
플러터에서 sticky 헤더를 가진 그리드뷰를 구현하는 방법을 알아보았습니다. 이를 참고하여 필요한 경우에 유용하게 사용해보세요.