[flutter] 스크롤바를 사용하여 카드 뷰 구현하기
카드 뷰 안에 많은 컨텐츠가 들어가있을 때 사용자가 편리하게 스크롤할 수 있도록 Scrollbar
를 추가할 수 있습니다. Flutter에서는 Scrollbar
위젯을 사용하여 스크롤바를 구현할 수 있습니다.
기본 스크롤바 구현
다음은 스크롤바가 추가된 카드 뷰의 기본적인 구현 방법입니다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SingleChildScrollView(
child: Center(
child: Card(
child: Container(
height: 400, // 카드 높이 설정
width: 300, // 카드 너비 설정
child: Scrollbar(
child: SingleChildScrollView(
// 카드 내용
),
),
),
),
),
),
),
);
}
}
위 코드에서 Scrollbar
위젯은 스크롤 가능한 카드 내용을 감싸고 있습니다. 카드 내용이 스크롤되면 스크롤바가 나타납니다.
커스텀 스크롤바 스타일링
스크롤바의 스타일을 변경하려면 PrimaryScrollController
를 이용하여 Theme
데이터를 수정할 수 있습니다. 다음 코드는 기본 스크롤바의 색을 변경하는 예제입니다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
final ScrollController _scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SingleChildScrollView(
controller: _scrollController, // 스크롤 컨트롤러 설정
child: Center(
child: Card(
child: Container(
height: 400, // 카드 높이 설정
width: 300, // 카드 너비 설정
child: Scrollbar(
controller: _scrollController, // 스크롤 컨트롤러 설정
isAlwaysShown: true, // 항상 스크롤바 표시 여부
thickness: 10, // 스크롤바 두께
child: SingleChildScrollView(
// 카드 내용
),
),
),
),
),
),
),
);
}
}
위 코드에서 Scrollbar
위젯을 감싸는 SingleChildScrollView
위에 ScrollController
를 추가하여 기본적인 스크롤바 스타일을 커스터마이징했습니다.
카드 뷰에 스크롤바를 추가하는 방법에 대해 간단히 알아보았습니다. 원하는 스타일링과 동작에 따라 Scrollbar
위젯의 속성을 조절하여 적절한 스크롤바를 구현할 수 있습니다.