Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-03-06 10:17:47 +08:00
parent 381c385726
commit 631197e3b9
80 changed files with 987 additions and 3281 deletions

View File

@@ -65,13 +65,10 @@ class _MemberShopState extends State<MemberShop>
@override
bool get wantKeepAlive => true;
late double _maxWidth;
late final gridDelegate = SliverWaterfallFlowDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: Grid.smallCardWidth,
mainAxisSpacing: StyleString.safeSpace,
crossAxisSpacing: StyleString.safeSpace,
afterCalc: (value) => _maxWidth = value,
);
Widget _buildBody(LoadingState<List<SpaceShopItem>?> loadingState) {
@@ -92,10 +89,7 @@ class _MemberShopState extends State<MemberShop>
gridDelegate: gridDelegate,
delegate: SliverChildBuilderDelegate(
(_, index) {
return MemberShopItem(
item: response[index],
maxWidth: _maxWidth,
);
return MemberShopItem(item: response[index]);
},
childCount: response.length,
),

View File

@@ -1,20 +1,19 @@
import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/flutter/layout_builder.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/models/common/badge_type.dart';
import 'package:PiliPlus/models_new/space/space_shop/item.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart' hide LayoutBuilder;
import 'package:get/get.dart';
class MemberShopItem extends StatelessWidget {
const MemberShopItem({
super.key,
required this.item,
required this.maxWidth,
});
final SpaceShopItem item;
final double maxWidth;
@override
Widget build(BuildContext context) {
@@ -34,11 +33,13 @@ class MemberShopItem extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
NetworkImgLayer(
type: .emote,
src: item.cover?.url,
width: maxWidth,
height: maxWidth,
LayoutBuilder(
builder: (context, constraints) => NetworkImgLayer(
type: .emote,
src: item.cover?.url,
width: constraints.maxWidth,
height: constraints.maxWidth,
),
),
Padding(
padding: const EdgeInsets.all(8),