feat(app): 接入首页轮播 banner
This commit is contained in:
1 parent
061aac6577
commit
7b927c794e
7 files changed
+469
-37
No files matched your search
@@ -6,6 +6,7 @@ import 'package:provider/provider.dart';
|
||||
|
||||
import '../../core/config/app_config.dart';
|
||||
import '../../core/data/models/drama.dart';
|
||||
import '../../core/data/models/home_feed.dart';
|
||||
import '../../core/data/models/watch_progress.dart';
|
||||
import '../../core/data/repositories/watch_history_repository.dart';
|
||||
import '../../core/data/services/category_controller.dart';
|
||||
@@ -18,6 +19,7 @@ import '../../core/widgets/remote_image.dart';
|
||||
import '../../l10n/app_localizations.dart';
|
||||
import 'discover_binding.dart';
|
||||
import 'discover_logic.dart';
|
||||
import 'widgets/feed_banner_carousel.dart';
|
||||
|
||||
part 'widgets/home_drama_grid.dart';
|
||||
|
||||
@@ -38,6 +40,8 @@ class DiscoverPage extends StatefulWidget {
|
||||
this.onAction,
|
||||
this.dramas,
|
||||
this.onDramaSelected,
|
||||
this.banners = const [],
|
||||
this.onBannerSelected,
|
||||
});
|
||||
|
||||
final Drama drama;
|
||||
@@ -54,6 +58,8 @@ class DiscoverPage extends StatefulWidget {
|
||||
final ValueChanged<DiscoverPageAction>? onAction;
|
||||
final List<Drama>? dramas;
|
||||
final ValueChanged<Drama>? onDramaSelected;
|
||||
final List<FeedBanner> banners;
|
||||
final ValueChanged<FeedBanner>? onBannerSelected;
|
||||
|
||||
@override
|
||||
State<DiscoverPage> createState() => _DiscoverPageState();
|
||||
@@ -147,6 +153,17 @@ class _DiscoverPageState extends State<DiscoverPage> {
|
||||
controller: logic.scroll,
|
||||
physics: const AlwaysScrollableScrollPhysics(),
|
||||
slivers: [
|
||||
if (widget.banners.isNotEmpty)
|
||||
SliverToBoxAdapter(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(top: 8),
|
||||
child: FeedBannerCarousel(
|
||||
banners: widget.banners,
|
||||
active: widget.active,
|
||||
onOpen: (banner) => widget.onBannerSelected?.call(banner),
|
||||
),
|
||||
),
|
||||
),
|
||||
SliverToBoxAdapter(child: _search()),
|
||||
SliverToBoxAdapter(
|
||||
child: Padding(
|
||||
|
||||
Reference in new issue
Block a user