From fe489eb0ebc1bb0ceae28db776c855094cf33f5a Mon Sep 17 00:00:00 2001 From: andannn Date: Tue, 7 Jan 2025 11:06:16 +0900 Subject: [PATCH 1/2] change movie layout --- .../discover/recent_movies/recent_movies.dart | 123 +++++++++--------- 1 file changed, 64 insertions(+), 59 deletions(-) diff --git a/lib/feature/discover/recent_movies/recent_movies.dart b/lib/feature/discover/recent_movies/recent_movies.dart index 23bb47bf..c039572a 100644 --- a/lib/feature/discover/recent_movies/recent_movies.dart +++ b/lib/feature/discover/recent_movies/recent_movies.dart @@ -39,9 +39,7 @@ class RecentMoviesContent extends StatelessWidget { builder: (context, state) { return RecentMoviesWidget( models: state.movies, - titleLanguage: GetItScope.of(context) - .get() - .userTitleLanguage, + titleLanguage: GetItScope.of(context).get().userTitleLanguage, ); }, ); @@ -66,8 +64,7 @@ class RecentMoviesWidget extends StatelessWidget { CategoryTitleBar( title: context.appLocal.recentMovies, onMoreClick: () { - RootRouterDelegate.get() - .navigateToAiringSchedule(type: ScheduleType.movie); + RootRouterDelegate.get().navigateToAiringSchedule(type: ScheduleType.movie); }, ), LayoutBuilder(builder: (context, constrains) { @@ -77,68 +74,76 @@ class RecentMoviesWidget extends StatelessWidget { final screenWidth = constrains.maxWidth; final imageWidth = min(screenWidth * 0.7, maxMovieImageWidth); final imageHeight = imageWidth / imageAspectRadio; - final viewportFraction = imageWidth / screenWidth; final totalHeight = imageHeight + 50; - return SizedBox( - height: totalHeight, - child: PageView.builder( - controller: PageController( - viewportFraction: viewportFraction, - initialPage: movies.length > 1 ? 1 : 0, - ), - itemCount: movies.length, - itemBuilder: (context, index) { - final model = movies[index]; - return Column( - mainAxisSize: MainAxisSize.max, - children: [ - Card.filled( - clipBehavior: Clip.antiAlias, - child: InkWell( - onTap: () { - RootRouterDelegate.get() - .navigateToDetailMedia(model.id); - }, - child: AspectRatio( - aspectRatio: imageAspectRadio, - child: AFNetworkImage( - imageUrl: model.coverImage?.extraLarge ?? '', - ), + Widget itemBuilder(BuildContext context, int index) { + final model = movies[index]; + return Column( + mainAxisSize: MainAxisSize.max, + children: [ + Card.filled( + clipBehavior: Clip.antiAlias, + child: InkWell( + onTap: () { + RootRouterDelegate.get().navigateToDetailMedia(model.id); + }, + child: SizedBox( + height: imageHeight, + child: AspectRatio( + aspectRatio: imageAspectRadio, + child: AFNetworkImage( + imageUrl: model.coverImage?.extraLarge ?? '', ), ), ), - const SizedBox(height: 5), - Flexible( - flex: 1, - child: Center( - child: Opacity( - opacity: 0.7, - child: AutoSizeText( - model.title?.getTitle(titleLanguage) ?? '', - maxLines: 1, - textAlign: TextAlign.center, - ), - ), + ), + ), + const SizedBox(height: 5), + Flexible( + flex: 1, + child: Center( + child: Opacity( + opacity: 0.7, + child: AutoSizeText( + model.title?.getTitle(titleLanguage) ?? '', + maxLines: 1, + textAlign: TextAlign.center, ), ), - Flexible( - flex: 1, - child: Center( - child: Opacity( - opacity: 0.7, - child: model.startDate != null - ? AutoSizeText( - context.materialLocal - .formatMediumDate(model.startDate!), - ) - : const SizedBox(), - ), - ), + ), + ), + Flexible( + flex: 1, + child: Center( + child: Opacity( + opacity: 0.7, + child: model.startDate != null + ? AutoSizeText( + context.materialLocal.formatMediumDate(model.startDate!), + ) + : const SizedBox(), ), - ], - ); - }, + ), + ), + ], + ); + } + + return SizedBox( + height: totalHeight, + child: CustomScrollView( + scrollDirection: Axis.horizontal, + slivers: [ + SliverList.builder( + itemCount: movies.length, + itemBuilder: (context, index) { + return SizedBox( + + child: itemBuilder(context, index), + ); + }, + ) + ], ), ); }), From eb9e7d49793f4d679673cfd8144ce74e1117eb71 Mon Sep 17 00:00:00 2001 From: andannn Date: Tue, 7 Jan 2025 11:18:43 +0900 Subject: [PATCH 2/2] change movie layout --- .../discover/recent_movies/recent_movies.dart | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/feature/discover/recent_movies/recent_movies.dart b/lib/feature/discover/recent_movies/recent_movies.dart index c039572a..bb8d519d 100644 --- a/lib/feature/discover/recent_movies/recent_movies.dart +++ b/lib/feature/discover/recent_movies/recent_movies.dart @@ -39,7 +39,9 @@ class RecentMoviesContent extends StatelessWidget { builder: (context, state) { return RecentMoviesWidget( models: state.movies, - titleLanguage: GetItScope.of(context).get().userTitleLanguage, + titleLanguage: GetItScope.of(context) + .get() + .userTitleLanguage, ); }, ); @@ -64,7 +66,8 @@ class RecentMoviesWidget extends StatelessWidget { CategoryTitleBar( title: context.appLocal.recentMovies, onMoreClick: () { - RootRouterDelegate.get().navigateToAiringSchedule(type: ScheduleType.movie); + RootRouterDelegate.get() + .navigateToAiringSchedule(type: ScheduleType.movie); }, ), LayoutBuilder(builder: (context, constrains) { @@ -87,13 +90,10 @@ class RecentMoviesWidget extends StatelessWidget { onTap: () { RootRouterDelegate.get().navigateToDetailMedia(model.id); }, - child: SizedBox( - height: imageHeight, - child: AspectRatio( - aspectRatio: imageAspectRadio, - child: AFNetworkImage( - imageUrl: model.coverImage?.extraLarge ?? '', - ), + child: AspectRatio( + aspectRatio: imageAspectRadio, + child: AFNetworkImage( + imageUrl: model.coverImage?.extraLarge ?? '', ), ), ), @@ -119,7 +119,8 @@ class RecentMoviesWidget extends StatelessWidget { opacity: 0.7, child: model.startDate != null ? AutoSizeText( - context.materialLocal.formatMediumDate(model.startDate!), + context.materialLocal + .formatMediumDate(model.startDate!), ) : const SizedBox(), ), @@ -138,7 +139,7 @@ class RecentMoviesWidget extends StatelessWidget { itemCount: movies.length, itemBuilder: (context, index) { return SizedBox( - + width: imageWidth.toDouble(), child: itemBuilder(context, index), ); },