feat(flutter): 首页频道叠加轮播并改下划线选中
This commit is contained in:
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'),
|
||||
|
||||
Reference in new issue
Block a user