feat(flutter): 首页频道叠加轮播并改下划线选中

This commit is contained in:
Zhou Weidong committed 2026-10-20 12:45:13 +08:00
1 parent 36c71e63b4
commit a24f1fa7c0
3 files changed
+176 -65

No files matched your search

@@ -27,6 +27,7 @@ class FeedBannerCarousel extends StatefulWidget {
required this.onOpen,
this.active = true,
this.dramaFor,
this.flush = false,
});
final List<FeedBanner> banners;
@@ -34,6 +35,9 @@ class FeedBannerCarousel extends StatefulWidget {
final bool active;
final Drama? Function(FeedBanner banner)? dramaFor;
/// 首页 hero 铺满屏幕并去掉圆角;发现页保持默认 false。
final bool flush;
@override
State<FeedBannerCarousel> createState() => _FeedBannerCarouselState();
}
@@ -161,10 +165,14 @@ class _FeedBannerCarouselState extends State<FeedBannerCarousel> {
final banner = widget.banners[index];
final dramaId = banner.dramaId;
final drama = widget.dramaFor?.call(banner);
final radius = widget.flush
? 0.0
: (drama == null
? AppDimens.authCardRadius
: AppDimens.heroBannerRadius);
final borderRadius = BorderRadius.circular(radius);
final card = ClipRRect(
borderRadius: BorderRadius.circular(
drama == null ? AppDimens.authCardRadius : AppDimens.heroBannerRadius,
),
borderRadius: borderRadius,
child: Stack(
fit: StackFit.expand,
children: [
@@ -225,11 +233,7 @@ class _FeedBannerCarouselState extends State<FeedBannerCarousel> {
? card
: Material(
color: Colors.transparent,
borderRadius: BorderRadius.circular(
drama == null
? AppDimens.authCardRadius
: AppDimens.heroBannerRadius,
),
borderRadius: borderRadius,
clipBehavior: Clip.antiAlias,
child: InkWell(
key: Key('feed-banner-$index'),