diff --git a/lib/plan_page_detail.dart b/lib/plan_page_detail.dart index b6b6788..15540e7 100644 --- a/lib/plan_page_detail.dart +++ b/lib/plan_page_detail.dart @@ -51,6 +51,7 @@ class _PlanPageDetailState extends State { late int _currentBottomNavIndex; String? _selectedYoutubeUrl; PlanDetailItem? _selectedItem; // <<< 선택된 아이템을 저장할 변수 추가 + final ScrollController _scrollController = ScrollController(); // 스크롤 컨트롤러 추가 @override void initState() { @@ -124,6 +125,12 @@ class _PlanPageDetailState extends State { ); } + @override + void dispose() { + _scrollController.dispose(); // 스크롤 컨트롤러 해제 + super.dispose(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -191,6 +198,7 @@ class _PlanPageDetailState extends State { final item = details[index]; return GestureDetector( onTap: () { + _scrollController.jumpTo(0); // 스크롤 맨 위로 이동 setState(() { _selectedItem = item; if (item.lessonUrl.isNotEmpty && @@ -292,6 +300,7 @@ class _PlanPageDetailState extends State { ), Expanded( child: SingleChildScrollView( + controller: _scrollController, // 스크롤 컨트롤러 연결 padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -337,7 +346,7 @@ class _PlanPageDetailState extends State { ), ), IconButton( - icon: const Icon(Icons.play_circle_fill, size: 40, color: Colors.red), + icon: const Icon(Icons.play_circle_fill, size: 40, color: Colors.blue), onPressed: () { if (_selectedYoutubeUrl != null && _selectedYoutubeUrl!.isNotEmpty) { Navigator.push(