💄 Optimized profile page background image

This commit is contained in:
LittleSheep 2025-06-11 00:20:21 +08:00
parent 36b9026e9e
commit 461f32545a
2 changed files with 52 additions and 35 deletions

View File

@ -65,23 +65,32 @@ class AccountProfileScreen extends HookConsumerWidget {
expandedHeight: 180,
pinned: true,
leading: PageBackButton(shadows: [iconShadow]),
flexibleSpace: FlexibleSpaceBar(
background:
data.profile.background?.id != null
? CloudImageWidget(
fileId: data.profile.background!.id,
)
: Container(
color:
Theme.of(context).appBarTheme.backgroundColor,
),
title: Text(
data.nick,
style: TextStyle(
color: Theme.of(context).appBarTheme.foregroundColor,
shadows: [iconShadow],
flexibleSpace: Stack(
children: [
Positioned.fill(
child:
data.profile.background?.id != null
? CloudImageWidget(
file: data.profile.background,
)
: Container(
color:
Theme.of(
context,
).appBarTheme.backgroundColor,
),
),
),
FlexibleSpaceBar(
title: Text(
data.nick,
style: TextStyle(
color:
Theme.of(context).appBarTheme.foregroundColor,
shadows: [iconShadow],
),
),
),
],
),
),
SliverToBoxAdapter(
@ -91,7 +100,7 @@ class AccountProfileScreen extends HookConsumerWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ProfilePictureWidget(
fileId: data.profile.picture?.id,
file: data.profile.picture,
radius: 32,
),
const Gap(20),

View File

@ -106,21 +106,32 @@ class PublisherProfileScreen extends HookConsumerWidget {
expandedHeight: 180,
pinned: true,
leading: PageBackButton(shadows: [iconShadow]),
flexibleSpace: FlexibleSpaceBar(
background:
data.background?.id != null
? CloudImageWidget(fileId: data.background!.id)
: Container(
color:
Theme.of(context).appBarTheme.backgroundColor,
),
title: Text(
data.nick,
style: TextStyle(
color: Theme.of(context).appBarTheme.foregroundColor,
shadows: [iconShadow],
flexibleSpace: Stack(
children: [
Positioned.fill(
child:
data.background?.id != null
? CloudImageWidget(file: data.background)
: Container(
color:
Theme.of(
context,
).appBarTheme.backgroundColor,
),
),
),
FlexibleSpaceBar(
title: Text(
data.nick,
style: TextStyle(
color:
Theme.of(context).appBarTheme.foregroundColor,
shadows: [iconShadow],
),
),
background:
Container(), // Empty container since background is handled by Stack
),
],
),
actions: [
subStatus.when(
@ -163,10 +174,7 @@ class PublisherProfileScreen extends HookConsumerWidget {
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 20,
children: [
ProfilePictureWidget(
fileId: data.picture!.id,
radius: 32,
),
ProfilePictureWidget(file: data.picture, radius: 32),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,