import 'package:flutter/material.dart';
class SettingsScreen extends StatelessWidget {
const SettingsScreen({super.key});
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Settings'),
),
body: ListWheelScrollView(
diameterRatio: 1.5,
offAxisFraction: 1.5,
itemExtent: 200,
children: [
for (var x in [1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1])
FractionallySizedBox(
widthFactor: 1,
child: Container(
color: Colors.teal,
alignment: Alignment.center,
child: const Text(
'Pick me',
style: TextStyle(
color: Colors.white,
fontSize: 39,
),
),
),
)
],
));
}
}
ListWheelScrollView
는 Flutter에서 제공하는 특별한 종류의 스크롤 뷰입니다. 일반적인 리스트보다는 휠 또는 회전판 같은 느낌의 UI를 구현하고자 할 때 주로 사용됩니다. 이 위젯을 사용하면 중앙에 위치한 항목이 크게 표시되고 양쪽으로 멀어질수록 항목이 작아지는 3D 효과를 쉽게 구현할 수 있습니다.
diameterRatio
가 1.5로 설정되어, 회전판의 커브가 약간 평평하게 설정되었습니다.offAxisFraction
이 1.5로 설정되어, 선택된 항목이 오른쪽으로 크게 이동합니다.itemExtent
는 각 항목의 높이를 200으로 설정합니다.for
루프를 사용하여 동일한 항목을 여러 번 생성합니다. 각 항목은 테일 색상의 컨테이너로, 중앙에 'Pick me'라는 텍스트가 포함되어 있습니다.이 ListWheelScrollView
는 사용자가 휠을 회전시킬 때 중앙에 위치하는 항목이 강조되는 데 사용되는 주요 위젯입니다. 그래픽 효과와 사용성 때문에 일반적인 리스트보다 선택적으로 사용됩니다. 예를 들어, 날짜나 시간을 선택하는 데 적합한 UI를 만들기 위해 사용될 수 있습니다.